2

特定のWebページからHTMLコードを取得しようとしていますが、

        HttpWebRequest request;
        HttpWebResponse response;
        StreamReader streamReader;
        request = (HttpWebRequest)WebRequest.Create(pageURL);
        response = (HttpWebResponse)request.GetResponse();
        streamReader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("windows-1251"));
        htmlCode = streamReader.ReadToEnd();
        streamReader.Close();

またはWebClientを使用すると、ログインページにリダイレクトされ、そのコードを取得します。HTMLコードを取得する他の方法はありますか?

私はここでいくつかの情報を読みました:ポストバックで現在のリクエストからHTMLを取得する方法、しかし私が何をすべきか、またはURLを指定する方法と場所を理解していませんでした。

PS:私はブラウザでログインしています。Notepad ++は、「右クリック-ソースコードの表示」を介して必要なものを完全に取得します。

ありがとう。

4

3 に答える 3

2

ログインページにリダイレクトされた場合は、コンテンツを取得する前にログインする必要があります。

したがって、適切な資格情報を使用して、ログインページにリクエストを送信する必要があります。ログインを維持するために、送信されたトークン(通常はCookieの形式)を取得します。次に、必要なページをリクエストします(リクエストとともにCookieを送信します)。

あるいは(そしてこれが推奨されるアプローチです)、自動化されたシステムがそれらと相互作用することを期待するほとんどの主要なサイトはAPIを提供します(多くの場合、認証にOAuthを使用します)。APIがどのように機能するかについては、ドキュメントを参照してください。

于 2012-10-23T13:36:03.497 に答える
1

アクセスしたいページがログイン画面の背後にある場合は、コードを使用してログインメカニズムを実行する必要があります。また、関連付けられたCookieCollectionを追加して、WebサイトがリクエストでドロップしようとするログインCookieを保持します。

または、プログラムを支援できるユーザーがいる場合は、ブラウザからログインした後、サイトのCookieを一覧表示してみてください。そのCookieをコピーして、CookieCollectionに追加します。

乾杯サイモン

于 2012-10-23T13:38:43.827 に答える
0

自閉症が必要なhtmlページを廃棄したい場合は、Watinを使用 して適切なフィールドに入力し、ダウンロードするページに移動することをお勧めします一見、IoTは少しやり過ぎに見えるかもしれませんが、後で多くのトラブルを回避できます。

于 2012-10-23T13:43:36.733 に答える