【发布时间】:2012-07-19 22:53:27
【问题描述】:
我一直在尝试通过代理使用 htmlagilitypack,但发现出现了一些不可预知的行为。
如何向 htmlagilitypack 添加凭据,以便它能够通过代理抓取网页?
【问题讨论】:
-
使用
HttpWebRequest或WebClient下载页面,然后将字符串加载到HAP。
标签: c# vb.net html-parsing html-agility-pack
我一直在尝试通过代理使用 htmlagilitypack,但发现出现了一些不可预知的行为。
如何向 htmlagilitypack 添加凭据,以便它能够通过代理抓取网页?
【问题讨论】:
HttpWebRequest 或WebClient 下载页面,然后将字符串加载到HAP。
标签: c# vb.net html-parsing html-agility-pack
这是我通常做的:
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 对象。
【讨论】:
这里已经回答了一个类似的问题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);
【讨论】: