request库
目的:系统的分析,掌握request库
参考:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
1. 普通的请求方法
a = requests.get(url)
a = requests.post(url,data = {'key':'value'})
a = requests.put(url,data = {'key':'value'})
a = requests.delete(url)
a = requests.head(url)
a = requests.options(url)
2. 含参数的请求方法
payload = {'key1': 'value1', 'key2': 'value2'}
a = requests.get("http://httpbin.org/get", params = payload)
payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
a = requests.get('http://httpbin.org/get', params = payload)
3. 请求之后使用的方法
a.url
a.text(服务器响应内容)
a.encoding
a.content(二进制响应内容)
a.json()
a.raw
4. 请求头
headers = {'user-agent': 'my-app/0.0.1'}
a = requests.get(url, headers=headers)
5. 响应状态码
a.status_code
requests.codes.ok
6. 响应头
a.headers(以列表形式)
7. cookie
a.cookies
cookies = dict(cookies_are='working')
a = requests.get(url, cookies=cookies)
8. 重定向
a.history (如果重定向会显示3XX)
a = requests.get(url, allow_redirects=False)
GET,OPTIONS,POST,PUT,PATCH,DELETE方法可以借此禁用重定向
a = requests.head(url, allow_redirects=True)
HEAD方法可以借此来开启重定向
9. 超时
a = requests.get(url, timeout=0.001)
10. 错误与异常
遇到网络问题(如:DNS 查询失败、拒绝连接等)时,Requests 会抛出一个 ConnectionError 异常。
如果 HTTP 请求返回了不成功的状态码, Response.raise_for_status() 会抛出一个 HTTPError 异常。
若请求超时,则抛出一个 Timeout 异常。
若请求超过了设定的最大重定向次数,则会抛出一个 TooManyRedirects 异常。
所有Requests显式抛出的异常都继承自 requests.exceptions.RequestException 。
网友评论