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,264评论 2 71
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,523评论 19 139
  • 背景在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cooki...
    时芥蓝阅读 6,942评论 1 17
  • 真不凑巧,你来找我,我却去了终南山。你和某某某的稿子我大略都读了,直接地说,我不太满意你们的叙述。某某某太注意描写...
    郢郢阅读 3,627评论 0 0
  • 最近看到一个成语“曲突徙薪”,对不起了教我小学语文的李老师,教我初中语文的郑老师,教我高中语文的刘老师。我确实是...
    橘说Itsays阅读 1,696评论 0 0