Requests库是由python语言编写的HTTP客户端库,常用于编写爬虫和测试服务器响应数据。
1. 安装Requests
Windows系统下,在命令行输入:pip install requests,安装
2. 方法函数-get()
r=requests.get(url,params,**kwargs)
url: 需要爬取的网站地址。
params: 翻译过来就是参数, url中的额外参数,字典或者字节流格式,可选。
**kwargs : 12个控制访问的参数
r对象的属性:
r.status_code http请求的返回状态,若为200则表示请求成功。
r.text http响应内容的字符串形式,即返回的页面内容
r.encoding 从http header 中猜测的相应内容编码方式
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
r.content http响应内容的二进制形式
使用实例1:不带参数的get
>>> import requests
>>>r=requests.get('https://www.baidu.com')
>>> print r
出现<Response [200]>,说明请求成功
>>> print r.encoding
ISO-8859-1
requests会从服务器返回的响应头的 Content-Type 去获取字符集编码,如果content-type有charset字段那么requests才能正确识别编码,否则就使用默认的 ISO-8859-1. 一般那些不规范的页面往往有这样的问题.
解决办法:
requests的返回结果对象里有个apparent_encoding函数, 通过调用chardet.detect()来识别文本编码
>>> r.apparent_encoding
'utf-8'
>>> r.encoding='utf-8'
>>> r.text
此时正确打印出页面HTML
使用实例2:传递参数
参数以键/值对的形式置于 URL 中,跟在一个问号的后面
>>> payload = {'key1': 'value1', 'key2': 'value2', 'key3': None}
>>>r=requests.get('http://httpbin.org/get',params=payload)
>>> print(r.url)
http://httpbin.org/get?key2=value2&key1=value1
使用实例3:传递headers
>>> headers = {'user-agent': 'my-app/0.0.1'}
>>> r = requests.get(url, headers=headers)
使用实例4:传递cookies
>>> url = 'http://httpbin.org/cookies'
>>> cookies = dict(cookies_are='working')
>>> r = requests.get(url, cookies=cookies)
>>> r.text
'{"cookies": {"cookies_are": "working"}}'
参考来源:http://docs.python-requests.org/zh_CN/latest/index.html