前言
在使用了urllib库之后,感觉很麻烦,比如获取个cookie都需要分几步,代码又多,又繁,那有没有更加容易点的请求库呢?答案是有的,那就是第三方库requests,这个库的作者是大名鼎鼎的kennethreitz,创作这个库的原因就是想让python开发者更加容易地发起请求,处理请求。里面还有个名字:HTTP for Humans,顾名思义,就是用来请求http的。想看源代码的可以在github上搜索他的名字就可以看到了。
接下来介绍下怎样用这个库吧!
正文
因为这是第三方库,所以我们需要下载,需要在命令行输入
pip install requests
如果你已经安装了anaconda的则跳过这条
安装好了就来进行使用吧
一、基本使用操作
基本get请求
发送一个get请求
# 发送请求
import requests
response = requests.get('http://httpbin.org/get')
# 获取返回的html信息
print(response.text)
这样就发送了一个get请求,并且还打印了返回的内容,这个不再需要知道网页是哪个编码的,不过有时会出现编码问题,但是你也可以指定编码类型,如:
response.encoding = 'utf-8'
指定完成后就可以正常编码了,前提你得知道网页的编码类型。
出了上面这些,我们还可以获取下面的信息
print(response.headers)
# 请求状态码
print(response.status_code)
# 获取网页的二进制内容
print(response.content)
print(response.url) # 获取请求的url
print(response.cookies) # 获取cookie
是不是觉得很容易,一行代码就可以了。不再需要几步代码什么的了。
添加headers
接下来被发爬的话带上个请求头来进行请求
# 还可以添加请求头进行请求
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'}
response = requests.get('http://httpbin.org/get', headers=headers )
print(response.headers)
print(response.