urllib库
模拟浏览器的行为 向指定服务器发送请求 保存返回的数据
urlopen
参数1 url请求的服务器地址
data 默认是None 如果设置了的值 那么请求就变成了post请求
返回值 <http.client.HTTPResponse object at 0x000001DDABEA5CC8>
- read 方法
- readline 读取一行
- readlines 读取多行 (用循环进行遍历)
网站识别出爬虫 需要解决反爬
返回bytes类型数据
- res.read().decode(‘解码格式’)
parse.urlsplit(),parse.urlparse()
对url进行切片
- parse.urlsplit(url)
- parse.urlparse(url)
- #urlparse比 split 多了 params属性
print(‘scheme:’,res.scheme)
print(‘query:’,res.query)
print(‘pach:’,res.path)
print(‘netloc:’,res.netloc)
反反爬
构建请求对象
携带请求头 user-agent:浏览器的名称
urlretrieve
下载方法
urlretrieve(链接,保存地址)
可爬取图片 和简单网页代码
request.urlcleanup()清除缓存
urlencode
parse_qs函数对url解码
- parse.parse_qs(url)
浏览器发送请求的时候自动对中文以及特殊字符进行ASCII编码 我们爬虫在发送请求时 直接发送中文 服务器不识别 需要手动编码
可以把字典变成url编码
from urllib import paese
爬取网页简单流程
1.构建头
- header = {
“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36”
}
2.构建请求对象
- 构建请求对象
request.Request(‘url’,‘header’)
3.发送服务器请求
- request.urlopen(请求对象)
4.获取源代码 进行解码
- res.read().decode(‘解码格式’)
其他使用
- 代码.readline() 读取单行
- 代码.readlines() 读取多行 返回列表
- .getcode()
获取状态码
取消证书验证
ssl._create_default_https_context = ssl._create_unverified_context
XMind - Trial Version