urllib库---内置库
1.urllib库基本使用
from urllib import request
url = 'https://www.biedoul.com/index/21868/'
resp = request.urlopen(url)
print(resp.read().decode('utf-8'))
2.网页数据保存格式---urlretrieve
request.urlretrieve(url,'bie.html')
在py文件相同目录下,会生成一个html文件:
打开即可浏览网页源代码
3.加密与解密---urllib编解码
urlencode函数
实现字典数据--->url编码数据
示例代码:
from urllib import parse
data = {
'name':'python爬虫', 'greet':'hello world','author':'ZHiLuan'
}
qs = parse.urlencode(data)
print(qs)
运行结果:
name=python%E7%88%AC%E8%99%AB&greet=hello+world&author=ZHiLuan
4.url地址解析---parse/split
·urlparse和urlsplit
示例代码:
from urllib import parse
url = 'https://www.biedoul.com/index/21868/'
result = parse.urlparse(url)
print(result)
运行结果:
ParseResult(scheme='https', netloc='www.biedoul.com', path='/index/21868/', params='', query='', fragment='')
由运行结果可知,urlparse函数可以解析出网页中的scheme、netloc、 path、params、query、fragment。
urlsplit函数的功能差不多,用法一致,只是缺少params项
此外,地址解析也可单独打印出相关内容,如:
ptint(result.scheme)
print(result.netloc)
...
5.Resquests类
request.Resquest类
from* urllib *import* request
url = 'http://www.baidu.com'
*# 增加请求头,告诉网站我们是一个正经的“浏览器”在访问*
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'
}
rq = request.Request(url,*headers*=headers)
res = request.urlopen(rq)
print(res.read())
6.proxy Handler代理设置
# 6.proxy Handler代理设置*
*# 原理:请求目的网站之前,先请求代理服务器,然后代理服务器去请求目的网站,代理服务器拿到目的网站数据。*
*from* urllib *import* request
url = 'http://www.baidu.com'
*# 1.使用proxy Handler传入代理构建一个handler*
handler = request.ProxyHandler({'http':'122.193.244.243:9999'})*#{'协议':'ip:端口'}*
*# 2.使用上面创建的handler构建一个opener*
opener = request.build_opener(handler)
*# 3.使用opener.open(url)*
resp = opener.open(url)
print(resp.read())
代理网站如下: