HtmlAgilityPack.HtmlDocument Cookies

cookies dom html-agility-pack javascript

这适用于在脚本中设置的cookie(可能在脚本标记内)。

System.Windows.Forms.HtmlDocument执行这些脚本,并且可以通过其Cookies属性检索设置的cookie(如document.cookie=etc... )。

我假设HtmlAgilityPack.HtmlDocument没有这样做(执行)。我想知道是否有一种简单的方法来模拟System.Windows.Forms.HtmlDocument功能(cookies部分)。

任何人?

热门答案

当我需要一起使用CookiesHtmlAgilityPack ,或者只是创建自定义请求(例如,设置User-Agent属性等)时,我就是这样做的:

  • 创建一个封装请求/响应的类。我们称这个类为WebQuery
  • 在该类中有一个私有CookieCollection (在您的案例中为public )属性
  • 在类中创建一个手动执行请求的方法。签名可以是:

...

public HtmlAgilityPack.HtmlDocument GetSource(string url);

我们在这个方法中需要做什么?

好吧,使用HttpWebRequestHttpWebResponse ,手动生成http请求(有几个如何在Internet上执行此操作的示例),使用接收流的构造函数创建HtmlDocument类的实例。

我们必须使用什么流?嗯,返回者:

httpResponse.GetResponseStream();

如果使用HttpWebRequest进行查询,则可以轻松地将其CookieContainer属性设置为每次访问新页面之前声明的变量,这样,您访问的站点设置的所有cookie都将正确存储在CookieContainer变量中你在WebQuery类中声明,计算你只使用一个WebQuery类的实例。

希望你能找到有用的解释。记住使用它,无论HtmlAgilityPack是否支持,你都可以做任何你想做的事情。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因