html - 我们在使用称为“请求”的 python 库时从网页请求 cookie 后获得的字符串中存储的信息是什么?
问题描述
实际上我正在通过名为requests
. 在向网页发出获取请求并将其响应存储在一个名为的对象中之后r
;当我试图查看该对象的 cookie 内容时;我得到的字符串<..>
主要包含随机字母数字字符。我无法获取或理解该字符串中隐藏了哪些信息。
import requests
r_object = requests.get('https://www.stackexchange.com/stories')
print (r_object.cookies)
这是它的输出:
<RequestsCookieJar[<Cookie prov=11531d97-98e5-3af7-2bdf-76e3edeece3e for .stackexchange.com/>]>
解决方案
我认为你想要做的是:
import requests
with requests.Session() as s:
resp = s.get("https://github.com")
print(resp.cookies)
# More details: http://docs.python-requests.org/en/master/_modules/requests/cookies/
结果:
<RequestsCookieJar[
<Cookie logged_in=no for .github.com/>,
<Cookie _gh_sess=UHd5aUZ0ZXlBVDVPMitaVVBaWFp0c1p6dFA0TWVSanJzRGgrbU1XbVkxV3VXRW9LeWgwWHpWZ2pOOHFxZmtGaTZpRExpT2NjTHRyK3hHZG5GZjlxTzllbklqK0thQytHYi9HZWsrZ1poZ1ZUakJkRU9OZmJINEh3QUR2N3h3UUh6aVdFTmFCRHlHcVpwWHo1bEM5d25adnhUemJ6Y3pFMUxTbk50Q0M0UUJrVG5hR3kxRUVoUTB2TjdUc2hWbHk3cDJDWUZ4UW85NVRuR09keFJRTlc1QT09LS1RUnZHWUpsQ3BQU0hPZGtsWDAxQXFBPT0%3D--d2bd04e94c369f425fb7e9cc57b5b5499909b140 for github.com/>,
<Cookie has_recent_activity=1 for github.com/>]>
请记住,您还有另外两个属性可以帮助您处理 cookie:
resp.cookies.items()
resp.cookies.get_dict()
这是一个例子:
import requests, re
with requests.Session() as s:
resp = s.get("https://github.com")
show_cookie = lambda x: [re.findall(r"([^,;\s]*?=.*?(?=;|$))|(\w+(?=;|$|,))",cookie) for cookie in re.findall(r"((?:^|,\s).*?)(?=,\s\S+;|$)",x)]
print(show_cookie(resp.headers.get('Set-Cookie')))
[[('has_recent_activity=1', ''), ('path=/', ''), ('expires=Sat, 29 Dec 2018 14:43:45 -0000', '')], [('logged_in=no', ''), ('domain=.github.com', ''), ('path=/', ''), ('expires=Wed, 29 Dec 2038 13:43:45 -0000', ''), ('', 'secure'), ('', 'HttpOnly')], [('_gh_sess=eHBNWkZscHFMeXJ3NEJUU0VXZlBQaHg0S01rby9MK24xNnFvR3gvVTBsOUJjTWNWenJPZ0RRdk9RNE9ZV2V0MTQ1bTg2NEduY3phSWRrd3l0L252KzBJNkRYZlpjWXh5c2NBZktkWGFsdjZDbEJjTEdhVmZ0YnpldDFHTEpuQzFTcDNNS21sT3BRaHhBVUFqTHQ1cDZyQWNPU005ODY0bFh0MGxCbWI5d2kwait5RlcvVjlUc2FwTTdNRE8wOHZQb0RGak5YbG1ZSDJTM2ZpQmVUUkkrdz09LS11M0ZHem1YYjdWYkVLaWtRMkhscW5nPT0%3D--f778e2d24e96f3386a2da36e2d33d2b73418deed', ''), ('path=/', ''), ('', 'secure'), ('', 'HttpOnly')]]
推荐阅读
- c# - 为什么柜台比它应该走得更远?
- r - 在R中自动在for循环中构建矩阵
- sql - SQL Server 存储过程可选择返回所有记录或根据参数进行筛选
- java - 这个词在html页面上使用了多少次
- xml - 如何使用 Java SAX 验证器找到有问题的 XML Schema?
- python - networkX 创建拓扑
- python - Python List 接受 None 和特定类型但不是 Any
- python - 在 Mac Catalina 上安装 Opencv
- scala - 在 Scala 中按值对现有映射进行排序
- reactjs - 如何修复 material-ui 中的文本/数据溢出?