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)
    原文作者:账号已注销20171213
    原文地址: https://www.jianshu.com/p/e02b6a329be4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞