我一直在尝试通过代理使用 htmlagilitypack,但我发现我得到了一些不可预测的行为。
如何向 htmlagilitypack 添加凭据,以便它能够通过代理抓取网页?
我一直在尝试通过代理使用 htmlagilitypack,但我发现我得到了一些不可预测的行为。
如何向 htmlagilitypack 添加凭据,以便它能够通过代理抓取网页?
这是我通常做的:
HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(url);
...
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) {
var doc = new HtmlDocument();
doc.Load(reader.BaseStream);
//Use (or return) the HtmlDocument 'doc' here.
}
您可以将此代码封装在一个给定 url、返回一个对象的方法上。HtmlDocument
这里已经回答了一个类似的问题 在此处输入链接描述
您在代码中使用它如下。
HtmlWeb web = new HtmlWeb();
web.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6";
var doc = web.Load(string url, string proxyHost, int proxyPort, string yourUserId, string yourPassword);