1、urllib库–内置
urlopen函数
创建一个远程表示url的类文件对象,然后像本地对象一样操作这个类文件对象来获取远程数据。
url:请求的url。
data:请求的data,如果设置了这个值,那么将变成post请求。
返回值:返回值是一个http.clinent.HTTPResponse对象,这个对象是一个类文件句柄对象。有read(size)、readline、readlines、getcode等方法
示例代码:
from urllib import request
resp = request.urlopen('http://www.xxx.com/')
print(resp.read())
2、数据保存方式–urlretrieve函数
urlretrieve函数
这个函数可以方便将网页上的文件保存到本地。
url:请求的url
filename:保存的文件名
示例代码:
from urllib import request
request.urlretrieve('http://www.xxx.com/','xx.html')
request.urlretrieve('https://xxx.jpg','xxx.jpg')
3、 加密与解密–urllib编解码
urlencode函数
把字典数据转换为URL编码的数据。
data:转换的参数
示例代码:
from urllib import request
data = {'name':'无名','age':18}
qs = parse.urlencode(data)
print(qs)
quote函数可以对字符串进行编码
示例代码:
from urllib import request
data1 = '你猜'
qs1 = parse.quote(data1)
print(qs1)
parse_qs函数可以将经过URL编码的参数解码
示例代码:
from urllib import request
data = {'name':'无名','age':18}
qs = parse.urlencode(data)
print(qs)
print(parse.parse_qs(qs))
4、URL地址解析–parse和split使用
有时候拿到一个url,想要对这个url的各个部分进行分割,这个时候就可以使用urlparse或者urlsplit来进行分割。
urlparse和urlsplit基本上是一样的。
唯一不一样的地方:urlparse里有params属性,而urlsplit没有这个params属性。
示例代码:
url = 'http://www.xxx.com/'
res = parse.urlparse(url)
print(res)
print(res.scheme) 协议
print(res.netloc) 域名
print(res.path) 路径
print(res.params) 参数
print(res.query) 查询条件
print(res.fragment) 锚点
5、网络请求–Requests类
request.Requests类:网络请求,可以增加请求头
示例代码:
from urllib import request
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
rq = request.Request('https://www.xxx.com/',headers=headers)
resp = request.urlopen(rq)
print(resp.read())