首页 » 产品日记 » 正文

python模块Requests的基础用法

想想还是把这个模块的简单用法补充一下

安装 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'

其他的用到再说吧,今天就写到这里了

发表评论