署名-非商业性使用-禁止演绎 3.0 未本地化版本 (CC BY-NC-ND 3.0)
何为requests
Requests 是使用 Apache2 Licensed 许可证的 HTTP 库。用 Python 编写,真正的为人类着想。
Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。
在Python的世界里,事情不应该这么麻烦。
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}
---------摘自: requests-docs-cn.readthedocs.org
Cookie
常用于保存cookie后, 携带cookie进行操作某些动作。 比如某个网站登陆后会写入cookie, 然后我们使用一致的cookie下载文件。
Session
某些服务需要session支持, 有效操作必须在同一个session进行,这时候程序端需要进行session实例支持, requests能很简单的支持。
Example code
python
以下代码, 从我负责系统剥离出来, 可能不能运行,请自己系统需求, 进行替换操作即可。
import requests, json
cookieJar = requests.cookies.RequestsCookieJar()
session = requests.Session()
login_url = "http://example.com/login"
user_data = {"username": "admin", "password": "apasswd"}
reload_url = "http://example.com/reload"
login_resp = session.request("POST", login_url,
cookies=cookieJar, data=json.dumps(user_data))
reload_resp = session.request("GET", click_url,
cookies=cookieJar)