署名-非商業性使用-禁止演繹 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)