Web クローリングを実現するには、Web サイトのログインに C# を使用します
はじめに
Web スクレイピングは、Web サイトでユーザーのログインが必要な場合に課題に直面することがよくあります。この記事では、後続の Web クローリングのために C# を使用してプログラムで Web サイトにログインする方法を説明します。
ログイン機能
ログインをシミュレートするために、フォーム データをログイン フォームに POST します。この例では、フォームの「action」属性で指定された URL を使用します。
<code class="language-csharp">string formUrl = "http://www.mmoinn.com/index.do?PageModule=UsersAction&Action=UsersLogin"; string formParams = string.Format("email_address={0}&password={1}", "您的邮箱", "您的密码"); byte[] bytes = Encoding.ASCII.GetBytes(formParams);</code>
次に、フォーム URL を指す Web リクエストを作成し、HTTP メソッドを「POST」に設定します。
<code class="language-csharp">WebRequest req = WebRequest.Create(formUrl); req.ContentType = "application/x-www-form-urlencoded"; req.Method = "POST"; req.ContentLength = bytes.Length; using (Stream os = req.GetRequestStream()) { os.Write(bytes, 0, bytes.Length); }</code>
サーバーは「Set-cookie」ヘッダーを返します。これは後続のリクエストのためにキャプチャされます。
ログイン後のコンテンツへのアクセス
ログインしたので、GET リクエストを使用して保護されたページにアクセスできます。サーバーに対して自分自身を識別するために、GET リクエストに「Cookie」ヘッダーを追加します。
<code class="language-csharp">string pageUrl = "登录页面后的页面URL"; WebRequest getRequest = WebRequest.Create(pageUrl); getRequest.Headers.Add("Cookie", cookieHeader); WebResponse getResponse = getRequest.GetResponse(); using (StreamReader sr = new StreamReader(getResponse.GetResponseStream())) { pageSource = sr.ReadToEnd(); }</code>
これらの手順に従うと、プログラムで Web サイトにログインし、Web スクレイピング用に保護されたコンテンツにアクセスできます。
以上がC# を使用して Web スクレイピングのために Web サイトにログインするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。