Requests主要方法解析
1. 主要方法
requests.request(method, url, **kwargs)
- method:请求方式,对应get/put/post等七种
- url:拟获取页面的url链接
- ** kwargs:控制访问的参数,共13个
注:以下两个语句作用完全相同
# 1:
r = requests.request('GET', 'http://www.baidu.com')
# 2:
r = requests.get('http://www.baidu.com')
2其实就是通过1来进行封装而成的
2. request方法13个参数解析
**kwargs中共有13个控制访问的参数,均为可选项
- params: 字典或字节序列,作为参数增加至url中
例:
import requests
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('GET', 'https://python123.io/ws', params=kv)
print(r.url)
运行结果为:
https://python123.io/ws?key1=value1&key2=value2
显然,将kv的键值对增加近到了请求的url中
- data:字典、字节序列或文件对象,作为Request的内容
例:
import requests
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('POST', 'http://python123.io/ws', data=kv)
使用POST,那么kv中的键值对不会将其放到url中,而是作为url的数据进行存储,不会在url中显示出来。
- json:JSON格式的数据,作为Request的内容
例:
import requests
kv = {'key1': 'value1'}
r = requests.request('POST', 'http://python123.io/ws', json=kv)
- headers:字典,HTTP定制头
例:
import requests
hd = {'user-agent': 'Chrome/10'}
r = requests.request('POST', 'http://python123.io/ws', headers=hd)
此时,再像服务器访问时,服务器看到的是Chrome10浏览器进行的访问。
这样我们可以模拟任何我们想模拟的浏览器,向服务器发起访问。
- cookies:字典或CookieJar,Request中的cookie
- auth:元祖,支持HTTP认证功能
- files:字典类型,传输文件
例:
import requests
fs = {'file': open('data.xls', 'rb')}
r = requests.request('POST', 'http://python123.io/ws', files=fs)
可用于向某一个链接提交某一个文件。
- timeout:设定超时时间,以秒为单位
例:
import requests
r = requests.request('GET', 'http://python123.io/ws', timeout=10)
- proxies:字典类型,设定访问代理服务器,可以增加登录认证
例:
import requests
pxs = {'http': 'http://user:pass@10.10.10.,:1234',
'https': 'https://10.10.10.1:4321'}
r = requests.request('GET', 'http://www.baidu.com', proxies=pxs)
可以用来隐藏爬取网页的用户原理的IP地址信息,能够防止对爬虫的逆追踪
- allow_redirects:Ture/False,默认为True,重定向开关
- stream:True/False,默认为True,获取内容立即下载开关
- verify:True/False,默认为True,认证SSL证书开关
- cert:本地SSL证书路径
3. get方法与request方法比较
get方法其实就是对request方法的封装。
get方法的完整形式:
requests.get(url, params=None, **kwargs)
注:
- **kwargs:有12个控制访问的参数。
- params加上**kwargs,共13个参数,和request方法中的参数相同。