1

そのため、ページにログインしてそのページからデータを取得しようとしていますが、これらのログイン情報を入力することが問題です。

私は何を試しましたか?URL にデータを投稿します。postname と値を so: のように追加するだけですhttp://stackoverflow.com?postLogin=myUsername&postPassword=myPassword。このURLでリクエストを送信しました。それは私にエラーを与えました。ブラウザでURLをチェックアウトしました。ユーザー名は入力されますが、パスワードのテキストボックスは入力されないようです(正しい投稿名を書きました)。

また、HtmlAgilityPack を使用してデータを入力するようにアドバイスしている人も見ました (回答としてマークされています)。しかし、さらに検索した結果、HtmlAgilityPack だけでそれを行うことは不可能に思えました。HtmlAgilityPack は、html を埋めるのではなく、解析するのに適しています。そのため、おそらく httpRequest と HtmlAgilityPack を組み合わせて使用​​する必要があるという結論に達しました。

私は間違っているかもしれないので、より良い提案があれば、私を正しい方向に向けて自由に指摘してください.

しかし、このようにするとしたら、両方を一緒に使用する方法がわかりません。最初に Web リクエストをログイン ページに送信して、html ページを取得します。httpWebRequest から応答を取得しますが、Webbrowser クラスにその応答を解析させ、その後、Webrequest にユーザー名、パスワードを使用して投稿データを送信させ、もちろん送信を試みるにはどうすればよいですか?

あなたがC#で答えたいのなら、私はそれを読んで自分で翻訳できると思います。

編集:フィドラーを使用したところ、送信されている8つの投稿がありました。これは、8 つすべてを URL に送信したということですか?

4

1 に答える 1

1

HTML の解析に WebBrowser を使用する必要はありません。HTML で必要な情報を文字列として検索するか、http://htmlagilitypack.codeplex.com/などのライブラリを使用して解析を行うことができます。

また、http://www.fiddler2.com/ は、ブラウザーが Web ページに送信する情報を正確に特定するのに非常に役立ちますこれにより、HttpWebRequest (ヘッダー、GET/POST 値など) を使用して動作を再現できます。

http://www.chadsowald.com/software/fiddler-extension-request-to-code - ブラウザーの要求を模倣する .NET コードを自動的に生成する Fiddler の拡張機能を試すこともできます。

于 2012-11-05T09:31:45.657 に答える