Requests库学习
-
请求豆瓣电影的前250,然后获取请求到内容的属性
import requests r = requests.get('https://movie.douban.com/top250') print type(r) print r.status_code print r.encoding #print r.text print r.cookies
-
requests的请求方式
- get()
- post()
- put()
- delete()
- head()
- options()
get()请求:
-
requests请求时附加参数
import requests payload = {'key1': 'value1', 'key2': 'value2'} r = requests.get("http://httpbin.org/get", params=payload) print r.url
-
请求json文件
- json文件内容如下:
["foo", "bar", { "foo": "bar" }]
- requests请求json
import requests r = requests.get("a.json") print r.text print r.json()
- 运行结果
[u'foo', u'bar', {u'foo': u'bar'}]
-
获取来自服务器的原始套接字响应(在初始请求中设置 stream=True,用r.raw取得)
r = requests.get('https://github.com/timeline.json', stream=True) r.raw <requests.packages.urllib3.response.HTTPResponse object at 0x101194810> r.raw.read(10) '\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03'
-
请求时传入header参数
import requests payload = {'key1': 'value1', 'key2': 'value2'} headers = {'content-type': 'application/json'} r = requests.get("http://httpbin.org/get", params=payload, headers=headers) print r.url
post请求
- 对于 POST 请求来说,我们一般需要为它增加一些参数。那么最基本的传参方法可以利用 data 这个参数。
import requests payload = {'key1': 'value1', 'key2': 'value2'} r = requests.post("http://httpbin.org/post", data=payload) print r.text
- 运行结果
{
"args": {},
"data": "",
"files": {},
"form": {
"key1": "value1",
"key2": "value2"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "23",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.9.1"
},
"json": null,
"url": "http://httpbin.org/post"
}
cookies
- 如果一个响应中包含了cookie,那么我们可以利用 cookies 变量来拿到
import requests url = 'http://example.com' r = requests.get(url) print r.cookies print r.cookies['example_cookie_name']
- 运行结果
'{"cookies": {"cookies_are": "working"}}'
- 运行结果