入门
- 在python实现的网络爬虫中,用于网络请求发送的模块有两种,第一种为urllib模块,第二种为requests模块。urllib模块是一种比较古老的模块,在使用的过程中较为繁琐和不便。当requests模块出现后,就快速的代替了urllib模块,因此,在我们课程中,推荐大家使用requests模块。
- Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。
警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。
为什么要使用requests模块
在使用urllib模块的时候,会有诸多不便之处,总结如下:
- 手动处理url编码
- 手动处理post请求参数
- 处理cookie和代理操作繁琐
……
使用requests模块:
- 自动处理url编码
- 自动处理post请求参数
- 简化cookie和代理操作
……
如何使用!
安装 pip install requests (加了s)
基本流程
- 导入模块
- 指定url
- 进行UA伪装(防爬)
- 基于requests模块发起请求
- 获取响应对象中的数据值
- 持久化存储
–get请求
response = requests.get(url,params,headers)
- url 需要解析的网址
- params 携带的参数 {key:value}字典类型
- headers 请求头 {key:value}字典类型
UA伪装 在开发者工具中network选项卡察看
headers={
'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'
}
当请求的是文本数据,用response.text获取响应数据
page_html = response.text
当请求的是二进制数据,用response.content获取响应数据
(二进制数据例如 音频,图片,视频等)
page_html = response.content
–post请求
response = requests.post(url,data,headers)
- url 需要解析的网址
- data 携带的参数 这里与get方式不同
- headers 请求头 {key:value}字典类型
注 响应数据还有response.json