在python3中合并了urllib和urllib2,现在只有一个urllib模块,urllib和urllib2的内容被整合到urllib.request中,urlparse被整合到urllib.parse中。
urlparse
将urlstr解析成各个组件
import urllib.request
import urllib.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
import urllib.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的方法,返回一个文件对象,然后可以进行类似文件对象的操作
import urllib.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中的键值对以连接符&划分
import urllib.parse
dic = {'name':'melon','age':18}
data = urllib.parse.urlencode(dic)
print(data) #age=18&name=melon
GET请求
GET请求和我们平时的get访问方式一样,直接把参数写到URL中即可
import urllib.request
import urllib.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请求
import urllib.request
import urllib.parse
import json
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())
当你 urllib.urlopen 一个 https 时,SSL 证书将被验证一次。当目标使用自签名证书时,将出现 URLError。如果是这样,你可以在开头添加
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python中的oct函数是什么?如何使用?09/27
- ♥ 如何在python中打印后不换行09/01
- ♥ 使用python3模块实现解压文件的方法01/09
- ♥ python是什么编程语言09/19
- ♥ python ansible脚本执行过程详解12/14
- ♥ 如何在python中自定义一个函数11/26
内容反馈