【问题标题】:How to see all cookies being set when a GET request is made发出 GET 请求时如何查看设置的所有 cookie
【发布时间】:2018-09-10 03:30:20
【问题描述】:

引用not getting all cookie info using python requests module

OP 看到在 Chrome 上设置了许多 cookie,但在他的 Python 请求代码中没有看到大多数这些 cookie。给出的原因是“正在设置的 cookie 来自其他页面/资源,可能由 JavaScript 代码加载。”

这是我用来尝试获取在访问 URL 时加载的 cookie 的函数:

从请求导入获取 从 requests.exceptions 导入 RequestException 从 contextlib 导入关闭 def get_cookies(url): """ 发出 HTTP GET 请求时,从 `url` 的响应中返回 cookie。 """ 尝试: s = 会话() 以关闭(get(url,stream = True))作为resp: 返回相应的cookies 除了 RequestException 为 e: print('请求 {0} 时出错:{1}'.format(url, str(e))) 返回无

但是使用这个功能,我只能看到 URL 设置的 cookie,而看不到其他像广告 cookie。鉴于此设置,我如何查看其他 cookie,就像 Chrome 看到它们一样? IE。当发出 GET 请求时,如何查看所有设置的 cookie,包括来自其他页面/资源的那些?

【问题讨论】:

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


    【解决方案1】:

    做了一些工作,但我设法让它工作。 基本上需要 selenium 和 chrome 来实际加载网站和所有 3rd 方的东西。其中一个输出是./chrome_dir/Default/Cookies 中的一个 sqlite3 cookie 数据库,您可以获取它以供自己使用。

    从硒导入网络驱动程序 导入 sqlite3 def get_cookies(url): """ 发出 HTTP GET 请求时,从 `url` 的响应中返回 cookie。 """ co = webdriver.ChromeOptions() co.add_argument("--user-data-dir=chrome_dir") # 创建一个目录来存放所有的chrome数据 驱动程序 = webdriver.Chrome(chrome_options=co) driver.get(url) driver.quit() conn = sqlite3.connect(r'./chrome_stuff/Default/Cookies') c = conn.cursor() c.execute("SELECT * FROM 'cookies'") 返回 c.fetchall()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-13
      • 2014-12-16
      • 2019-08-03
      • 2013-12-11
      • 2016-06-05
      • 2020-11-30
      • 2017-09-30
      • 1970-01-01
      相关资源
      最近更新 更多