python requests用法总结

requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到。可以说,Requests 完全满足如今网络的需求
本文全部来源于官方文档 http://docs.python-requests.org/en/master/
安装方式一般采用$ pip install requests。其它安装方式参考官方文档

HTTP - requests

import requests

GET请求

r = requests.get(‘http://httpbin.org/get‘)

传参

payload = {‘key1’: ‘value1’, ‘key2’: ‘value2’, ‘key3’: None}
r = requests.get(‘http://httpbin.org/get‘, params=payload)

http://httpbin.org/get?key2=value2&key1=value1

Note that any dictionary key whose value is None will not be added to the URL’s query string.

参数也可以传递列表

payload = {‘key1’: ‘value1’, ‘key2’: [‘value2’, ‘value3’]}
r = requests.get(‘http://httpbin.org/get‘, params=payload)
print(r.url)
http://httpbin.org/get?key1=value1&key2=value2&key2=value3

r.text 返回headers中的编码解析的结果,可以通过r.encoding = ‘gbk’来变更解码方式
r.content返回二进制结果
r.json()返回JSON格式,可能抛出异常
r.status_code
r.raw返回原始socket respons,需要加参数stream=True

r = requests.get(‘https://api.github.com/events‘, stream=True)
r.raw

‘{“cookies”: {“sessioncookie”: “123456789”}}’

session可以用来提供默认数据,函数参数级别的数据会和session级别的数据合并,如果key重复,函数参数级别的数据将覆盖session级别的数据。如果想取消session的某个参数,可以在传递一个相同key,value为None的dict

s = requests.Session()
s.auth = (‘user’, ‘pass’) #权限认证
s.headers.update({‘x-test’: ‘true’})

both ‘x-test’ and ‘x-test2’ are sent

s.get(‘http://httpbin.org/headers‘, headers={‘x-test2’: ‘true’})

函数参数中的数据只会使用一次,并不会保存到session中

如:cookies仅本次有效
r = s.get(‘http://httpbin.org/cookies‘, cookies={‘from-my’: ‘browser’})

session也可以自动关闭

with requests.Session() as s:
s.get(‘http://httpbin.org/cookies/set/sessioncookie/123456789‘)

响应结果不仅包含响应的全部信息,也包含请求信息

r = requests.get(‘http://en.wikipedia.org/wiki/Monty_Python‘)
r.headers
r.request.headers

SSL证书验证

Requests可以为HTTPS请求验证SSL证书,就像web浏览器一样。要想检查某个主机的SSL证书,你可以使用 verify 参数:

requests.get(‘https://kennethreitz.com‘, verify=True)
requests.exceptions.SSLError: hostname ‘kennethreitz.com’ doesn’t match either of ‘*.herokuapp.com’, ‘herokuapp.com’

在该域名上我没有设置SSL,所以失败了。但Github设置了SSL:

requests.get(‘https://github.com‘, verify=True)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值