我一直试图通过代理使用htmlagilitypack,我发现我得到了一些不可预知的行为。
如何向htmlagilitypack添加凭据,以便它能够通过代理抓取网页?
答案 0 :(得分:1)
这是我通常做的事情:
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.
}
您可以将此代码封装在给定网址的方法上,返回HtmlDocument
个对象。
答案 1 :(得分:0)
此处已回答类似的问题enter link description here
您在代码中使用如下所示。
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);