requests
库是一个基于python的http
库,相比于python标准库中提供了urllib、httplib等,requests库
进行了更高级的封装,使得进行网络数据爬取时更加简单。
一、requests库安装
windows系统,只需要在命令行输入命令 pip install requests 即可安装
linux系统下,只需要输入命令 sudo pip install requests 即可安装
二、requests库的最主要的七个方法
requests 的所有功能都可以通过以下 7 个方法访问,这7个方法都会返回一个response对象的实例。
requests.request() | 最基础的方法,下面6个方法,实际上都是对request方法的再次封装 |
requests.get() | 获取特定url的html页 |
requests.head() | 获取特定url的html页的头部信息 |
requests.post() | 向特定url通过post提交数据 |
requests.put() | 提交数据到服务器,并取代服务器文档的内容 |
requests.patch() | 请求服务器局部修改指定的页面 |
requests.delete() | 请求服务器删除指定的页面 |
get、post、head、put、patch、delete这6个方法,实际上是与http协议的请求方法一一对应的。
1、request方法
(1)函数形式
requests.request(method, url, **kwargs)
(2)参数
method:请求的方法,包括get、post、head、put、patch、delete
url:请求的url地址
**kwargs:可选的13个访问控制参数
13个访问控制参数包括如下:
params:字典或字节序列,作为参数增加到url中
data: 字典、字节序列或文件对象,作为请求体的一部分,将数据提交到服务器上
json:json格式的数据,作为请求体的一部分提交到服务器上
headers:字典对象,作为HTTP请求的头部提交到服务器上
cookies:字典或CookieJar对象,作为HTTP请求的cookies提交到服务器上
files:字典类型, 向服务器传输文件时使用
auth:元组类型,用作支持Basic/Digest/Custom的HTTP认证
timeout:数字或元组类型,设置请求的超时时间,单位为秒
allow_redirects :布尔类型,设置是否允许url重定向,默认为True
proxies:字典类型, 用于设置访问代理服务器
verify:当为布尔类型时,控制是否允许服务器的TLS认证,默认为TRUE;当为字符串时,表示使用的CA包的路径
stream:布尔类型,控制对获取的内容是否立即下载, 默认为True
cert:字符串类型,用于设置本地SSL证书的路径
(3)返回值response
response对象,主要属性如下:
status_code:http请求的返回状态,比如200、404
text:http响应的字符串形式
content:http响应的二进制形式
encoding:从http响应头部猜测的响应编码方式
apparent_encoding:从响应内容中分析出的编码方式
headers:http响应头
cookies:服务器返回的CookieJar
is_redirect:是否重定向
(4)用法
import requests
r=requests.request('GET','http://wwww.baidu.com')
r.text
2、get方法
(1)函数形式
requests.get(url, params=None, **kwargs)
(2)参数
url:请求的url地址
params:字典或字节序列,作为请求参数增加到url中
**kwargs: 可选的12个访问控制参数,包含的参数与request方法的几乎一样。(除了params参数被抽取到前面以外)
(3)返回值
response对象
(4)用法
import requests
myheaders={'User-Agent': 'Mozilla/5.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
searchkey = {'q':' 爬虫'}
r1=requests.get('https://wwww.so.com/s',params=searchkey,headers=myheaders)
r1.encoding='utf-8'
r1.text
3、post方法
(1)函数形式
post(url, data=None, json=None, **kwargs)
(2)参数
url:请求的url地址
data: 字典、字节序列或文件对象,作为请求体的一部分,将数据提交到服务器上
json:json格式的数据,作为请求体的一部分提交到服务器上
**kwargs:可选的11个访问控制参数,包含的参数与request方法的几乎一样。(除了Data、Json参数被抽取到前面以外)
(3)返回值
response对象
(4)用法
payload={"key1":"value1","key2":"value2"}
r=requests.post("http://httpbin.org/post",data=payload)
r.text
4、其他几个方法示例
r = requests.put('http://httpbin.org/put', data = {'key':'value'})
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
r = requests.options('http://httpbin.org/get')