0

我一直在尝试通过代理使用 htmlagilitypack,但我发现我得到了一些不可预测的行为。

如何向 htmlagilitypack 添加凭据,以便它能够通过代理抓取网页?

4

2 回答 2

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.
}

您可以将此代码封装在一个给定 url、返回一个对象的方法上。HtmlDocument

于 2012-09-18T17:39:52.703 回答
1

这里已经回答了一个类似的问题 在此处输入链接描述

您在代码中使用它如下。

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);
于 2016-12-10T16:27:51.390 回答