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

python安装threading库_字节序

3、post方法

(1)函数形式

post(url, data=None, json=None, **kwargs)

(2)参数

url:请求的url地址

data: 字典、字节序列或文件对象,作为请求体的一部分,将数据提交到服务器上

jsonjson格式的数据,作为请求体的一部分提交到服务器上

**kwargs:可选的11个访问控制参数,包含的参数与request方法的几乎一样。(除了Data、Json参数被抽取到前面以外)

(3)返回值

response对象

(4)用法

payload={"key1":"value1","key2":"value2"}

r=requests.post("http://httpbin.org/post",data=payload)

r.text

python安装threading库_字节序_02

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')