想想还是把这个模块的简单用法补充一下
安装 pip install requests
老规矩,爬虫实战中的一贯用法如下代码:
import requests
# 导入
url = 'https://www.baidu.com'
headers = {'User-Agent':'','Referer':'','Cookie':''}
# 自定义请求头,也可以不用,自行测试,后面会给出为啥要自定义
r = requests.get(url,headers=headers)
# 请求数据
r.text
# 返回数据
# 就可以开始解析数据的流程了,略
另外,在实际场景中也经常会遇到一种情况是,获取到的数据是乱码,这个时候就要判断下它的编码格式,常见的有gbk和utf-8,根据实际情况,可以用以下方法来设置编码:
r.encoding = 'utf-8'
# 设置编码格式
好了,知道上面的用法就已经够用了
现在来说下为啥要自定义的请求头
可以测试下直接请求url时,看看提交的请求头是个啥:
import requests
url = 'https://www.baidu.com'
r = requests.get(url)
r.encoding = 'utf-8'
print(r.request.headers)
输出:
{'User-Agent': 'python-requests/2.21.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '/', 'Connection': 'keep-alive'}
这就是直接请求url时我们的请求头信息,遇到有做反爬虫的百分之百懵逼,这就是为啥要做请求头的原因哈。
扩展一下:
自定义请求头信息可以在浏览器中获取,获取方法(以Google浏览器为例,F12打开图中界面):
查看和获取本地、服务器交互方式及信息
如图中圈选的几处,可以看到上面代码中需要的参数和值,直接拷贝后贴到headers这个词典中即可。
介绍几个requests模块的一些方法:
r.status_code
# 状态码,正常请求完成返回200
r.url
# 返回当前url地址
payload = {'ie':'utf-8','wd':'python'}
# 传递url参数
r = requests.get('https://www.baidu.com/s',params=payload)
r.url
# 打印:'https://www.baidu.com/s?ie=utf-8&wd=python'
其他的用到再说吧,今天就写到这里了