0

こんにちは私はいくつかの職務を支援するためにHTMLパーサーを書いています。IEエクスプローラーを使用してサイトに入ることができます。しかし、csharpコードを使用するとエラーが発生します

使ってみました

client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.Proxy.Credentials = CredentialCache.DefaultCredentials;

要求されたページは表示されませんが、エラーページが表示されます。エクスプローラーでページを表示できる場合は、C#でHTMLを取得する方法が必要です。

(他のブラウザの同じページには認証が必要であることに注意してください-IEではありません)

4

2 に答える 2

1

このライブラリを試すことができます:https ://github.com/HtmlUnit/NHtmlUnit

htmlユニットを使用して、プログラムでhtml操作を実行できます。詳細については、http://blog.stevensanderson.com/2010/03/30/using-htmlunit-on-net-for-headless-browser-automation/をご覧ください。

于 2012-11-27T16:06:18.727 に答える
1

問題はリクエストヘッダーにあり、C#はuser-agnetヘッダータグを送信しません。接続しようとしたサイトは、ユーザーエージェントがいない場合にエラーを返すと思います。

IEヘッダーにヘッダーを調整するために次の行を追加しました:

WebClient client = new WebClient();
client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.Proxy.Credentials = CredentialCache.DefaultCredentials;
client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
于 2012-11-27T17:02:27.513 に答える