ホームページ >バックエンド開発 >C++ >POST リクエストと GET リクエストを使用して C# で Web スクレイピングを認証する方法

POST リクエストと GET リクエストを使用して C# で Web スクレイピングを認証する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-18 09:26:08583ブラウズ

How to Authenticate Web Scraping in C# Using POST and GET Requests?

C# Web スクレイピング認証: POST リクエストと GET リクエストの実践ガイド

Web スクレイピングで保護された Web サイトにはユーザー認証が必要です。このガイドでは、高レベルのライブラリの一般的な制限を回避して、C# を使用して Web サイトにログインする方法について詳しく説明します。 HTTP リクエストを正確に制御するための WebRequestWebResponse の使用に焦点を当てます。

前提条件:

  • コンテンツにアクセスするにはログインが必要な Web サイト。
  • C# プログラミングと Web スクレイピングの基礎に精通していること。

実装手順:

認証には 2 つの重要な手順が含まれます:

  1. ログイン資格情報の投稿:

    • ログイン URL を構築し、フォームパラメータ (ユーザー名、パスワード) を適切にエンコードします。
    • POST メソッド、コンテンツ タイプ ("application/x-www-form-urlencoded")、およびデータ長を使用して WebRequest を構成します。
    • エンコードされたフォーム データを含む POST リクエストを送信します。
    • 応答の「Set-Cookie」ヘッダーから認証 Cookie を抽出します。この Cookie は後続のリクエストにとって重要です。
  2. 保護されたコンテンツの取得:

    • 保護されたページの WebRequest を作成します。
    • 手順 1 で取得した認証 Cookie をリクエスト ヘッダーに追加します。
    • サーバーは Cookie を検証し、保護されたリソースへのアクセスを許可します。
    • StreamReader を使用して、ページの HTML ソース コードを取得して処理します。

コード例:

この例は、ログインして保護されたページを取得する方法を示しています。

<code class="language-csharp">string loginUrl = "http://www.mmoinn.com/index.do?PageModule=UsersAction&Action=UsersLogin";
string loginParams = string.Format("email_address={0}&password={1}", "your email", "your password");
string cookieHeader;

WebRequest loginRequest = WebRequest.Create(loginUrl);
loginRequest.ContentType = "application/x-www-form-urlencoded";
loginRequest.Method = "POST";
byte[] data = Encoding.ASCII.GetBytes(loginParams);
loginRequest.ContentLength = data.Length;

using (Stream requestStream = loginRequest.GetRequestStream())
{
    requestStream.Write(data, 0, data.Length);
}

WebResponse loginResponse = loginRequest.GetResponse();
cookieHeader = loginResponse.Headers["Set-cookie"];

string protectedPageUrl = "http://www.mmoinn.com/protected_page.html";
WebRequest protectedRequest = WebRequest.Create(protectedPageUrl);
protectedRequest.Headers.Add("Cookie", cookieHeader);

WebResponse protectedResponse = protectedRequest.GetResponse();
using (StreamReader reader = new StreamReader(protectedResponse.GetResponseStream()))
{
    string pageSource = reader.ReadToEnd();
    // Process the protected page's HTML
}</code>

このコードは、POST リクエストの送信、Cookie の取得、その Cookie を使用して GET リクエスト経由で保護されたコンテンツにアクセスするという完全な認証プロセスを示しています。 "your email""your password" を実際の資格情報に置き換えてください。 堅牢なアプリケーションには、エラー処理 (無効な認証情報など) を追加する必要があります。

以上がPOST リクエストと GET リクエストを使用して C# で Web スクレイピングを認証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。