【问题标题】:Crawl site and detect 3rd party cookies抓取网站并检测 3rd 方 cookie
【发布时间】:2012-10-05 17:03:03
【问题描述】:

我正在编写一个爬虫来记录由一定数量的站点部署的所有 cookie。我可以使用 selenium 获取在页面访问时设置的第一方 cookie,但软件中的限制意味着它不会获取第三方 cookie。是否有其他可用的工具可以选择所有 cookie?

谢谢。

【问题讨论】:

    标签: c# .net cookies selenium watin


    【解决方案1】:

    如果您将此作为一次性任务执行,您可以在 Firefox 浏览器中使用类似 FireCookie 的扩展,它可以让您导出所有 cookie: http://www.softwareishard.com/blog/firecookie/

    如果您想自动执行此任务并定期运行,请考虑以下解决方案:

    1. 首先获取需要爬取的页面列表。
    2. 然后将每个页面连续加载到网络浏览器中。仅仅获取页面的 HTML 是不够的,因为您需要加载和处理所有可能设置 cookie 的 javascript、iframe 等。它可能是无头浏览器,例如 PhantomJS (http://www.phantomjs.org/) 或其他解决方案,只要它像浏览器一样实际呈现页面即可。
    3. 使用诸如 Charles 代理 (http://www.charlesproxy.com/) 之类的 Web 代理来记录来自浏览器的所有网络请求。可以保存和处理记录的会话以提取所有 cookie 标头。 Charles 代理有一个 API,可用于将会话导出到 XML 文件,因此您也可以将这部分自动化。

    【讨论】:

      【解决方案2】:

      我相信您可以使用 RegEx 和 ie.GetCookie() 从网站收集所有 cookie。自己没有尝试过,但就文档而言,我认为这会很容易。

      【讨论】:

      • GetCookie 仅拉回第一方 cookie。在这种情况下,看不出 RegEx 有什么帮助。
      猜你喜欢
      • 2011-07-03
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2021-10-23
      • 2018-03-26
      相关资源
      最近更新 更多