这与在脚本内(可能在脚本标签内)设置的cookie有关。System.Windows.Forms.HtmlDocument
执行这些脚本,并且可以通过其Cookies属性检索cookie集(如document.cookie=etc...
)。
我假设HtmlAgilityPack.HtmlDocument
不执行此操作(执行)。我想知道是否有一种简单的方法来仿真System.Windows.Forms.HtmlDocument
功能(cookies部分)。
任何人?
最佳答案
当我需要一起使用Cookies和HtmlAgilityPack或仅创建自定义请求(例如,设置User-Agent
属性等)时,这是我的工作:
WebQuery
...
public HtmlAgilityPack.HtmlDocument GetSource(string url);
在此方法中我们需要做什么?
好吧,使用HttpWebRequest和HttpWebResponse,手动生成http请求(在Internet上有几个有关此操作的示例),并使用接收流的构造函数创建
HtmlDocument
类的实例。我们必须使用什么流? 好吧,返回者:
httpResponse.GetResponseStream();
如果使用HttpWebRequest进行查询,则可以在每次访问新页面之前轻松地将其
CookieContainer
属性设置为声明的变量,这样由您访问的网站设置的所有cookie都将正确存储在CookieContainer
中您在WebQuery
类中声明的变量,算上您仅使用了WebQuery
类的一个实例。希望您能从中找到有用的解释。考虑到使用此功能,无论HtmlAgilityPack是否支持它,您都可以做任何您想做的事情。
关于javascript - HtmlAgilityPack.HtmlDocument Cookies,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5562948/