python reqeusts Cookie & Session

署名-非商業性使用-禁止演繹 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)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • HTTP cookie(也稱為web cookie,網絡cookie,瀏覽器cookie或者簡稱cookie)是網...
    留七七閱讀 18,117評論 2 71
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,973評論 19 139
  • 背景在HTTP協議的定義中,采用了一種機制來記錄客戶端和服務器端交互的信息,這種機制被稱為cookie,cooki...
    時芥藍閱讀 2,383評論 1 17
  • 真不湊巧,你來找我,我卻去了終南山。你和某某某的稿子我大略都讀了,直接地說,我不太滿意你們的敘述。某某某太注意描寫...
    郢郢閱讀 590評論 0 0
  • 最近看到一個成語“曲突徙薪”,對不起了教我小學語文的李老師,教我初中語文的鄭老師,教我高中語文的劉老師。我確實是...
    橘說Itsays閱讀 253評論 0 0