【问题标题】:Return Javascript managed cookies programmatically using C#使用 C# 以编程方式返回 Javascript 管理的 cookie
【发布时间】:2012-02-23 12:50:37
【问题描述】:

我正在尝试以编程方式 ping 一个网站(通过控制台应用程序)并返回该网站正在使用的所有 cookie 的详细信息。

我使用的以下方法仅捕获通过标头请求管理的那些 cookie,而错过了使用 Javascript 设置的那些:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = new CookieContainer();
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)";
request.Method = "GET";

response = (HttpWebResponse)request.GetResponse();

foreach (Cookie c in response.Cookies)
{
   cookie.Add(c);
}

有人可以就如何扩展它以包含 javascript 配置的 cookie 提供建议吗?

谢谢!

【问题讨论】:

  • 您是否在问如何获取由另一个站点的客户端 javascript 创建和设置的 cookie 值?
  • 是的。我正在编写一个自动浏览一组网站并记录他们收集哪些 cookie 的爬虫。
  • 我猜如果你只是以编程方式 ping 一个网站,javascript 不会被执行,所以没有设置 javascript cookie。

标签: c# javascript .net cookies httpwebrequest


【解决方案1】:

嗯,不知道这会有多大帮助,但是......

您问是否有一种简单的方法来获取由客户端 javascript 动态创建的 cookie,答案是否定的,没有(除非我遗漏了什么)。

有没有更难的方法,比如包装 .NET 浏览器控件,让 javascript 通过自动 Web 脚本执行,然后抓取 DOM……不过对我来说这听起来不是一个好主意。

欢迎任何其他想法。

【讨论】:

    【解决方案2】:

    刚刚设法实现了接近我想要的东西(仍在测试解决方案,它似乎缺少来自第 3 方的一些跟踪 cookie!)。但是我所做的是使用 Selenium 和 Chrome 驱动程序可执行文件。它所做的是打开一个 chrome 实例,导航到 URL,然后拉回所有动态生成的信息,然后可以使用 C# 查询这些信息。 :)

    【讨论】:

      猜你喜欢
      • 2011-02-27
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      • 2014-03-16
      • 2014-11-06
      相关资源
      最近更新 更多