crawler-03 requests库的request()方法

crawler-03 requests库的request()方法

一、requests库的7个主要方法

UTOOLS1576466206138.png

二、request() 方法

  requests库的request()方法是其余所有方法的基本方法,有三个参数。

1
2
3
4
5
6
requests.request(method,url,**kwargs)

#参数说明
method: 请求方式,对应get、post等7种
url: 目标链接
**kwargs: 控制访问的参数,共13个

1、method:请求方式

UTOOLS1576466472849.png

2、**kwargs的13个参数,均可选

1)params:字典或字节序列,能够增加到url中的参数,说白了就是链接的新增后缀;

例如:

1
2
3
4
>>> kv={'key1':'value','key2':'value2'}
>>> r=requests.request('GET','http://python123.io/ws',params=kv)
>>> print(r.url)
http://python.io/ws?key1=value1&key2=value2

2)data:字典,字节序列或文件对象,作为Request的内容,用于提交数据;

例如:

1
2
3
4
5
6
7
#提交键值对数据
>>> kv={'key1':'value','key2':'value2'}
>>> r=requests.request('POST','http://python123.io/ws',params=kv)

#提交字符串数据
>>> body="hello"
>>> r=requests.request('POST','http://python123.io/ws',params=body)

3)json:JSON格式的数据,作为Request的内容,向服务器提交;

例如:

1
2
>>> kv={'key1':'value','key2':'value2'}
>>> r=requests.request('POST','http://python123.io/ws',json=kv)

4)headers:字典,HTTP定制头(模拟浏览器进行访问)

例如:把user-agent改为Chrome/10,模拟Chrome/10版本的浏览器。

1
2
>>> hd={'user-agent':'Chrome/10'}
>>> r=requests.request('POST','http://python123.io/ws',jheaders=hd)

5)cookies:字典或CpplieJar,Request中的cookie

6)auth:元祖,支持HTTP认证功能

7)files:字典类型,传输文件

例如:向某一个链接,提交某一个文件

1
2
>>> fs={'file':open('data.xls','rb')}
>>> r=requests.request('POST','http://python123.io/ws',files=fs)

8)timeout:设定超时时间,秒为单位

例如:

1
>>> r=requests.request('GET','http://www.baidu.com',timeout=10)

9)proxies:字典类型,设定访问代理服务器,可以增加登陆认证

例如:访问百度时,使用的ip就是代理服务器的ip地址,有效隐藏用户爬取时所用源ip;

1
2
3
>>> pxs={'http':'http://user:pass@10.10.10.1:1234'
'https':'https://10.10.10.1:4321'}
>>> r=requests.request('GET','http://www.baidu.com',proxies=pxs)

10)allow_redirects:True//False,默认为True,重定向开关

11)stream:True/False,默认为True,获取内容立即下载开关

12)verify:True/False,默认为True,认证SSL证书开关

13)cert:本地SSL证书路径”””

三、其余六种方法

  其余六种方法都是基于request() 方法封装而成的,功能一致;但是由于不同方法有不同的常用参数,因此不常用的参数都放到了**kwargs里面。

  无论是否在**kwargs里面,参数含义是一致的。

1、get() 方法

  get() 方法**kwargs:12和控制访问的参数,是因为params单独拿出来了,加一起就是13个参数

1
2
3
4
5
6
7
#完整参数
requests.get(url,params=None,**kwargs)

#参数解析
url:目标页面链接
params:额外参数,字典或者字节流格式,可选
**kwargs:12和控制访问的参数,可选

2、post() 方法

1
2
#完整参数
requests.post(url,data=None,json=None,**kwargs)

3、put() 方法

1
2
#完整参数
requests.post(url,data=None,**kwargs)

4、patch()方法

1
requests.patch(url,data=None,**kwargs)

5、delete()方法

1
requests.delete(url,**kwargs)

6、head()方法

1
requests.head(url,**kwargs)
欢迎打赏,谢谢
------ 本文结束------
0%