Requests库主要方法解析
爬虫重点掌握get和header方法,其他需要了解熟悉
主要方法
HTTP协议与Requests库方法间的联系:
request.request(method,url, **kwargs):
method:请求方式,对于get/post/put等7种
url:获取页面的url链接
**kwargs:控制访问的参数,共13g个
method请求方式:
r = requests.request('GET', url, **kwargs)
r = requests.request('HEAD', url, **kwargs)
r = requests.request('POST', url, **kwargs)
r = requests.request('PUT', url, **kwargs)
r = requests.request('PATCH', url, **kwargs)
r = requests.request('DELETE', url, **kwargs)
r = requests.request('OPTIONS', url, **kwargs)
**kwargs:控制访问的参数,均为可选项
1、params:字典或字节序列,做为参数增加到url地址中
例:
import requests
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('GET', 'http://python123.io/ws', params=kv)
print(r.request.url)
# 结果:https://python123.io/ws?key1=value1&key2=value2
get请求会将请求的参数,添加到网址的后面,键值对以&连接
2、data:字典、字节序列或文件对象,作为Requests的内容
import requests
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('POST', 'http://python123.io/ws', data=kv)
print(r.request.body) # 查看内容
3、json:JSON格式的数据,作为Requests的内容(http协议最经常使用的数据格式)
import requests
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('POST', 'http://python123.io/ws',json=kv)
4、headers:字典,HTTP定制头(可模拟任何我们想要模拟的浏览器向服务器发起访问)
import requests
hr = {'user-agent': 'Chrome/10'}
r = requests.request('GET', 'http://python123.io/ws', headers=hr)
print(r.request.headers)
5、cookies:字典或CookieJar,Requests中的cookie
6、auth:元组,支持HTTP认证功能
7、files:字典,传输文件
import requests
file = {'file': open('./abc.txt', 'rb')}
r = requests.request('GET', 'http://python123.io/ws', files=file)
8、timeout:设置超时时间,单位秒
import requests
r = requests.request('GET', 'http://www.baidu.com', timeout=30)
9、proxies:字典类型,设定代理访问服务器,可以增加登录认证(https 使用代理服务器进行爬虫,隐藏用户原ip地址)
import requests
pox = {'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=pox)
10、allow_redirects:True/False,默认为True,重定向开关
11、stream:True/False,默认为True,获取内容立即下载开关
12、verify:True/False,默认为True,认证SSL证书开关
13、cert:本地SSL证书路径
requests.get(url,params=None,**kwargs)
url:获取页面的url链接
params:url中的额外参数,字典或字节流格式,可以省略
**kwargs:12个控制访问的参数
requests.header(url,**kwargs)
url:获取页面的url链接
**kwargs:13个控制访问的参数
requests.post(url,data=None,json=None,**kwargs)
url:获取页面的url链接
data:字典、字节序列或文件对象,作为Requests的内容
json:JSON格式的数据,作为Requests的内容
**kwargs:11个控制访问的参数
requests.put(url,data=None,**kwargs)
url:获取页面的url链接
data:字典、字节序列或文件对象,作为Requests的内容
**kwargs:12个控制访问的参数
requests.patch(url,data=None,**kwargs)
url:获取页面的url链接
data:字典、字节序列或文件对象,作为Requests的内容
**kwargs:12个控制访问的参数
requests.delete(url,**kwargs)
url:获取页面的url链接
**kwargs:13个控制访问的参数