requests库中response的基本属性
-
response.encoding
-
response.status_code
200是正常,4XX是客户端错误,5XX是服务器错误。
-
response.content
是字节方式的响应体,会自动解码gzip和deflate编码的响应数据
-
response.json()
是Requests中内置的JSON编码器
传递URL参数
url参数就是以键值对形式跟在网址后面的,在requests中,可以直接把这些参数保存在字典中,然后使用params参数拼接到地址之后。
key_dict = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('http://httpbin.org/get',params=key_dict)
定制请求头Request Headers
requests并不会基于定制的请求头headers去改变自己的行为,只是在最后的请求中,所有的请求头信息都会准备传递出去。
如果没有定制请求头或者请求头和实际网页不一致,就可能无法返回正确的结果。
一般请求头指的是Request Headers而不是Resopnse Headers,所以在copy的时候需要注意一下,比较重要的属性是User-Agent还有Host
发送post请求
post请求实在需要发送表单形式的数据时,比如登录,只需要将一个字典数据传递给data参数就可以了。
key_dict = {
'key1': 'value1',
'key2': 'value2'
}
response = requests.post(‘http://httpbin.org/post', data=key_dict)
此时response.text的结果中,form的值就是我们传递的字典参数。
{
"args": {},
"data": "",
"form": {
"key1": "value1",
"key2": "value2"
},
…
}
可以设置timeout = 10,来限制连接的时间不超过10秒。