Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengesahkan Pengikisan Web dalam C# Menggunakan Permintaan POST dan GET?

Bagaimana untuk Mengesahkan Pengikisan Web dalam C# Menggunakan Permintaan POST dan GET?

Susan Sarandon
Susan Sarandonasal
2025-01-18 09:26:08583semak imbas

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

Pengesahan Pengikisan Web C#: Panduan Praktikal untuk POS dan DAPATKAN Permintaan

Tapak web yang dilindungi mengikis web memerlukan pengesahan pengguna. Panduan ini memperincikan cara untuk log masuk ke tapak web menggunakan C#, memintas had biasa perpustakaan peringkat tinggi. Kami akan menumpukan pada penggunaan WebRequest dan WebResponse untuk kawalan tepat ke atas permintaan HTTP.

Prasyarat:

  • Tapak web yang memerlukan log masuk untuk akses kandungan.
  • Kebiasaan dengan pengaturcaraan C# dan asas mengikis web.

Langkah Pelaksanaan:

Pengesahan melibatkan dua langkah utama:

  1. Menyiarkan Bukti Kelayakan Log Masuk:

    • Bina URL log masuk dan kodkan parameter borang dengan betul (nama pengguna, kata laluan).
    • Konfigurasikan WebRequest dengan kaedah POST, jenis kandungan ("application/x-www-form-urlencoded") dan panjang data.
    • Hantar permintaan POST yang mengandungi data borang yang dikodkan.
    • Ekstrak kuki pengesahan daripada pengepala "Set-Cookie" respons. Kuki ini penting untuk permintaan seterusnya.
  2. Mendapatkan Kandungan Dilindungi:

    • Buat WebRequest untuk halaman yang dilindungi.
    • Tambahkan kuki pengesahan yang diperoleh dalam langkah 1 pada pengepala permintaan.
    • Pelayan mengesahkan kuki, memberikan akses kepada sumber yang dilindungi.
    • Gunakan StreamReader untuk mendapatkan dan memproses kod sumber HTML halaman.

Contoh Kod:

Contoh ini menunjukkan log masuk dan mendapatkan semula halaman yang dilindungi:

<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>

Kod ini menggambarkan proses pengesahan lengkap: menghantar permintaan POST, mendapatkan semula kuki dan menggunakan kuki itu untuk mengakses kandungan yang dilindungi melalui permintaan GET. Ingat untuk menggantikan "your email" dan "your password" dengan bukti kelayakan sebenar. Pengendalian ralat (cth., untuk bukti kelayakan yang tidak sah) harus ditambah untuk aplikasi yang mantap.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Pengikisan Web dalam C# Menggunakan Permintaan POST dan GET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn