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"
}

 

 

 

posted @ 2017-01-16 16:18  黎灬婼  阅读(129)  评论(0)    收藏  举报