- requests有get,post,put,delete,head,options
为url传递参数
>>> payload = {'key1': 'value1', 'key2': 'value2'} >>> r = requests.get("http://httpbin.org/get", params=payload)
r.text获得响应内容
r.encoding解码
r.content或者二进制响应内容
r.json()解开返回信息中的json
r.status_code获得响应码
r.status_code==requests.codes.ok看网站是否能打开
r.raise_for_status()抛出404异常
r.headers查看headers
r.cookies查看cookies
发送Cookies:
>>> url = 'http://httpbin.org/cookies'
>>> cookies = dict(cookies_are='working')
>>> r = requests.get(url, cookies=cookies)
>>> r.text
'{"cookies": {"cookies_are": "working"}}'
定制headers:
>>> import json
>>> url = 'https://api.github.com/some/endpoint'
>>> payload = {'some': 'data'}
>>> headers = {'content-type': 'application/json'}
>>> r = requests.post(url, data=json.dumps(payload), headers=headers)
requests是自动重定向的,要追踪重定向,使用r.url,r.history可以看是否重定向
>>> r = requests.get('http://github.com')
>>> r.url
'https://github.com/'
>>> r.status_code
200
>>> r.history
[<Response [301]>]
allow_redirects
参数禁用重定向处理
>>> r = requests.get('http://github.com', allow_redirects=False)
>>> r.status_code
301
>>> r.history
[]
timeout
参数设定的秒数时间之后停止等待响应
错误与异常
遇到网络问题(如:DNS查询失败、拒绝连接等)时,Requests会抛出一个ConnectionError
异常。
遇到罕见的无效HTTP响应时,Requests则会抛出一个 HTTPError
异常。
若请求超时,则抛出一个 Timeout
异常。
若请求超过了设定的最大重定向次数,则会抛出一个 TooManyRedirects
异常。
所有Requests显式抛出的异常都继承自 requests.exceptions.RequestException
。