1

この質問を検索しましたが、探していたものは何も見つかりませんでした。基本的に、htmlagilitypack でプロキシを使用したいのですが、以前にそれを実行するためのコードを持っていましたが、それを失いました。 . しかし、作成中のプログラムでタイムアウトになり、プロキシを有効にする必要があります。

    private void button1_Click(object sender, EventArgs e)
    {
        StringBuilder output = new StringBuilder();
        string raw = "http://www.google.com";
        HtmlWeb webGet = new HtmlWeb();
        webGet.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6";
        var document = webGet.Load(raw);


    }
4

3 に答える 3

9

私たちの企業セットアップ内では、これを app.config に追加すると、コードを変更する必要なく機能します

<system.net>
   <defaultProxy useDefaultCredentials="true" />
</system.net>
于 2016-12-01T00:08:27.450 に答える
6

HtmlWeb.Load()プロキシを使用するオーバーロードを使用します。2 つのオーバーロード シグネチャがあります。

HtmlDocument Load(string url, string method, WebProxy proxy, NetworkCredential credentials);
HtmlDocument Load(string url, string proxyHost, int proxyPort, string userId, string password);

コードでプロキシを直接使用した経験はありませんが、これが機能することを期待しています。

于 2012-08-23T20:40:54.993 に答える
5

HtmlAgilityPack は URL からデータをダウンロードしません。クラスを使用して、プロキシをサポートするページをダウンロードします。

例えば

WebClient wc = new WebClient();
wc.Proxy = new WebProxy(host,port);
var page = wc.DownloadString(url);

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(page);

編集

テキストファイルからのようなものを読み取ると仮定すると、次のよう11.22.33.44:5678 にプロキシを作成することもできます

wc.Proxy = new WebProxy("11.22.33.44:5678");
于 2012-08-23T20:38:24.047 に答える