【问题标题】:Not able to save cookies from a website using Python requests?无法使用 Python 请求从网站保存 cookie?
【发布时间】:2015-12-17 07:37:01
【问题描述】:

链接:http://www.ibnlive.com/videos/world/

通过使用网络浏览器,我可以在页面加载时轻松看到以下 cookie:

但如果我尝试使用 python 请求加载相同的 cookie,它会显示为一个空字典:

import requests
s = requests.session()
connection = s.get('http://www.ibnlive.com/videos/world/')
print(s.cookies) # produces an empty dictionary

我的问题是如何使用 python 脚本获取这些 cookie?

【问题讨论】:

    标签: python python-3.x cookies python-requests


    【解决方案1】:

    因为 cookie 不是由 http://www.ibnlive.com/videos/world/ 设置的,而是页面正在加载的其他一些资源。尝试查看该 url 的标头,您将看不到任何 Set-Cookie 标头。

    【讨论】:

    • 对,但是该域上的任何页面都可以设置 cookie。因此,它可能是 http://www.ibnlive.com/some/cookie/setter/path,您的浏览器在加载您的 URL 后就会加载。
    • 这个问题有通用的解决方案吗?
    • 最通用的方法是模仿浏览器。也就是说,一旦您加载主页,使用正则表达式解析所有 URL,然后使用 Session 加载它们。但这将是缓慢且毫无意义。大概你只需要_vrf cookie?只需花时间找出实际设置 cookie 的页面,然后使用 Session 加载它。
    • 虽然我应该补充一点,如果是一些 JavaScript 正在加载,上述方法将失败,即您将无法解析 URL。最好的办法是使用真正模仿浏览器的工具,例如 PhantonJSselenium
    猜你喜欢
    • 2020-05-31
    • 2017-05-12
    • 2021-12-30
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    相关资源
    最近更新 更多