Requests 库基本用法

为什么选择requests,因为它能完全胜任python自带的urllib模块,简化了不必要的功能的同时让使用更加简单。

安装

1
pip3 install requests

简单使用

首先呈上官方文档,有中文版,欢迎来啃。
下面主要介绍两种方法:get和post

  • get,就是本地向服务器索取的意思,服务器检查请求头(request headers)后,如果觉得没问题,就会返回信息给本地。
1
r = requests.get(url,**args)#返回一个Response对象,我们可以从这个对象中获取所有我们想要的信息
  • post,就是本地要向服务器提交一些数据的意思,服务器还是会检查请求头,如果提交的数据和请求头都没问题,就会返回信息给本地。
1
2
3
4
5
args = {
"a": "b",
...
}
r = requests.post(url, params=args)#也是返回Response对象

参数详解

get和post方法中有许多参数可以使用,部分参数后面会详解。

  • url:就是目标网址,接收完整(带http)的地址字符串。
  • headers:请求头,存储本地信息如浏览器版本,是一个字典。
  • data:要提交的数据,字典。
  • cookies:cookies,字典。
  • timeout:超时设置,如果服务器在指定秒数内没有应答,抛出异常,用于避免无响应连接,整形或浮点数。
  • params:为网址添加条件数据,字典。
1
2
3
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)
#相当于目标网址变成了http://httpbin.org/get?key2=value2&key1=value1
  • proxies:ip代理时使用,字典。

Response对象使用

从这个对象中获取所有我们想要的信息非常简单,毕竟爬虫要的数据主要就三种,html源码,图片二进制数据,json数据,Response对象一次性满足你三个愿望。

1
2
3
4
5
6
7
8
9
r.encoding = 'ISO-8859-1'    #指定r.text返回的数据类型,写在r.text之前。
r.text #默认以unicode形式返回网页内容,也就是网页源码的字符串。

r.content #以二进制形式返回网页内容,下载图片时专用。
r.json() #把网页中的json数据转成字典并将其返回。

#还有一些很少用到的方法。
r.headers #返回服务器端的headers,字典。
r.status_code #返回连接状态,200正常。

Reference

Python 从零开始爬虫(零)——爬虫思路&requests模块使用