在python3中,urllib和urllib2进行了合并,现在只有一个urllib模块,urllib和urllib2的中的内容整合进了urllib.request,urlparse整合进了urllib.parse。
urlparse 将urlstr解析成各个组件
importurllib.request importurllib.parse url="http://www.baidu.com" parsed=urllib.parse.urlparse(url) print(parsed) #输出:ParseResult(scheme='http',netloc='www.baidu.com',path='',params='',query='',fragment='')
urljoin(baseurl,newurl,allowFrag=None) 将url的根域名和新url拼合成一个完整的url
importurllib.parse url="http://www.baidu.com" new_path=urllib.parse.urljoin(url,"index.html") print(new_path) #输出:http://www.baidu.com/index.html
urlopen(url,data,timeout) 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作
importurllib.request req=urllib.request.urlopen('http://www.baidu.com') print(req.read())
read() , readline() , readlines() , fileno() , close()
info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息。 getcode():返回Http状态码,如果是http请求,200表示请求成功完成;404表示网址未找到。 geturl():返回请求的url。
urlretrieve(url,filename,reporthook,data) 下载url定位到的html文件,不写路径filename则会被存为临时文件可以用urllib.urlcleanup()来清理缓存
file_name=urllib.request.urlretrieve('http://www.baidu.com','%s/baidu.html'%BASE_DIR)
urlencode() 将dict中的键值对以连接符&划分
importurllib.parse dic={'name':'melon','age':18} data=urllib.parse.urlencode(dic) print(data)#age=18&name=melon
GET请求
GET请求 和我们平常get访问方式一样,直接把参数写到网址上面就好了
importurllib.request importurllib.parse dic={'name':'melon','age':18} data=urllib.parse.urlencode(dic) req=urllib.request.urlopen('http://127.0.0.1:8000/index?%s'%data) content=req.read()
POST请求
importurllib.request importurllib.parse importjson dic={'name':'melon','age':18} data=urllib.parse.urlencode(dic) req=urllib.request.Request('http://127.0.0.1:8000/index',data.encode()) opener=urllib.request.urlopen(req) content=json.loads(opener.read().decode())
importssl ssl._create_default_https_context=ssl._create_unverified_context原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容