python之requests模块
1.安装
pip install requests
2.基本用法
就是以某种HTTP方法向远端服务器发送一个请求而已
1 import requests 2 3 r = requests.get('https://github.com/timeline.json') 4 r = requests.post("http://httpbin.org/post") 5 r = requests.put("http://httpbin.org/put") 6 r = requests.delete("http://httpbin.org/delete") 7 r = requests.head("http://httpbin.org/get") 8 r = requests.options("http://httpbin.org/get")
所谓 requests.get,就是以GET方式发送一个REQUEST,得到一个Response类的结果,保存为 r。
3.URL传参/获取请求的URL
<协议>://<域名>/<接口>?<键1>=<值1>&<键2>=<值2>
requests库提供的HTTP方法,提供了名为params的参数,这个参数可接受一个python字典,并自动格式化为上述格式
1 import requests 2 3 url = 'http://www.so.com/s' 4 5 params = {'ie': 'utf-8', 'q': 'query'} 6 7 r = requests.get(url, params=params) 8 9 print r.url
得到结果:
http://www.so.com/s?q=query&ie=utf-8
4.设置超时
requests的超时设置以秒为单位
设置超时为5秒
1 import requests 2 3 url = 'http://www.zhihu.com' 4 5 r = requests.get(url, timeout=5)
5.请求头部
默认头部
1 import requests 2 3 cs_url = 'http://httpbin.org/get' 4 r = requests.get (cs_url) 5 print r.content
结果
{ "args": {}, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.7.0 CPython/2.7.10 Windows/7" }, "origin": "xx.xx.xx.xx", "url": "http://httpbin.org/get" }
我们可以自定义请求的头部
1 import requests 2 3 my_headers = {'User-Agent' : 'From Liam Huang', 'Accept-Encoding' : 'gzip'} 4 cs_url = 'http://httpbin.org/get' 5 r = requests.get (cs_url, headers = my_headers) 6 print r.content
结果
{ "args": {}, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip", "Host": "httpbin.org", "User-Agent": "From Liam Huang" }, "origin": "xx.xx.xx.xx", "url": "http://httpbin.org/get" }
可以看到User-Agent和Accept-Encoding都已经改变
6.响应头部
可以通过response.headers来查看
1 import requests 2 3 cs_url = 'http://httpbin.org/get' 4 r = requests.get (cs_url) 5 print r.headers
结果
{ "content-length": "263", "server": "nginx", "connection": "keep-alive", "access-control-allow-credentials": "true", "date": "Fri, 26 Feb 2016 10:26:17 GMT", "access-control-allow-origin": "*", "content-type": "application/json" }

浙公网安备 33010602011771号