import requests
r = requests.get('https://me.csdn.net/The_Time_Runner')
print(type(r), r)
>> <class 'requests.models.Response'> <Response [200]>
上面的type®可以看到,requests.get()返回的是一个Response对象。
The Response object, which contains a server's response to an HTTP request.
通过解析Response的源代码,可以看到起内部包含了从服务器返回的众多数据。
class Response(object):
"""The :class:`Response <Response>` object, which contains a
server's response to an HTTP request.
"""
__attrs__ = [
'_content', 'status_code', 'headers', 'url', 'history',
'encoding', 'reason', 'cookies', 'elapsed', 'request'
]
...
有时候没法通过上述简单的方式获取数据,需要添加HTTP头部,即确定headers
参数
r = requests.get('https://api.github.com/events', headers ={'user-agent': 'my-app/0.0.1'}, stream=True)
参数:
headers:请求头
stream:
返回的response对象内部的内容怎么查看?常用函数有哪些?
r.text
r.encoding
r.content
r.json()
r.status_code
r.raise_for_status()
r.raw
r.raw.read()
r.iter_content
r.history
r.url
前面举例了requests.get(),其他功能也都是简单的格式:
r = requests.post(‘http://httpbin.org/post’, data = {‘key’:‘value’})
r = requests.put(‘http://httpbin.org/put’, data = {‘key’:‘value’})
r = requests.delete(‘http://httpbin.org/delete’)
r = requests.head(‘http://httpbin.org/get’)
r = requests.options(‘http://httpbin.org/get’)
可以通过关键字参数传递url参数
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)
.
.
.
2019-03-25 21:42:35写于上海