抓取网站并检测第三方Cookie

时间:2012-03-08 16:01:38

标签: c# .net cookies selenium watin

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

感谢。

2 个答案:

答案 0 :(得分:1)

如果您将此作为一次性任务执行,则可以使用Firefox浏览器中的FireCookie扩展程序,以便导出所有Cookie: http://www.softwareishard.com/blog/firecookie/

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

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

答案 1 :(得分:0)

我相信您可以使用RegEx和ie.GetCookie()来收集网站上的所有Cookie。我自己没试过,但到目前为止,我认为文档会很容易。