requests简单使用

  • 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 。

 
posted @ 2015-12-22 23:25  thouger  阅读(233)  评论(0编辑  收藏  举报