C# Web スクレイピング認証: POST リクエストと GET リクエストの実践ガイド
Web スクレイピングで保護された Web サイトにはユーザー認証が必要です。このガイドでは、高レベルのライブラリの一般的な制限を回避して、C# を使用して Web サイトにログインする方法について詳しく説明します。 HTTP リクエストを正確に制御するための WebRequest
と WebResponse
の使用に焦点を当てます。
前提条件:
実装手順:
認証には 2 つの重要な手順が含まれます:
ログイン資格情報の投稿:
WebRequest
を構成します。保護されたコンテンツの取得:
WebRequest
を作成します。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 サイトの他の関連記事を参照してください。