Mengautomasikan Log Masuk Laman Web dalam C# untuk Mengikis Web yang Cekap
Pengikisan web adalah penting untuk pengekstrakan data daripada tapak web, tetapi banyak tapak memerlukan log masuk. Mengautomasikan proses log masuk ini adalah penting untuk pengikisan yang cekap. Artikel ini menunjukkan cara untuk mencapai ini menggunakan C#.
Mari kita pertimbangkan mmoinn.com
sebagai contoh. Akses kepada kod sumber tertentu adalah terhad kepada pengguna log masuk. Untuk mengikis data ini, kami akan mengautomasikan log masuk.
Penyelesaian Teguh: WebRequest dan WebResponse
WebRequest
dan WebResponse
menawarkan kawalan yang lebih baik ke atas permintaan dan respons HTTP berbanding WebClient
. Proses ini melibatkan dua langkah utama:
1. POST Permintaan untuk Log Masuk:
WebRequest
, tetapkan URL, ContentType
, Method
dan ContentLength
dengan sewajarnya.GetRequestStream()
untuk menghantar data POST.2. DAPATKAN Permintaan untuk Halaman Dilindungi:
WebRequest
untuk halaman yang dilindungi.WebRequest
.GetResponseStream()
untuk mengakses kod sumber halaman yang dilindungi.Contoh Kod: MENYIASKAN Bukti Kelayakan Log Masuk
<code class="language-csharp">string formUrl = "http://www.mmoinn.com/index.do?PageModule=UsersAction&Action=UsersLogin"; string formParams = $"email_address={username}&password={password}"; string cookieHeader; WebRequest req = WebRequest.Create(formUrl); req.ContentType = "application/x-www-form-urlencoded"; req.Method = "POST"; byte[] bytes = Encoding.ASCII.GetBytes(formParams); req.ContentLength = bytes.Length; using (Stream os = req.GetRequestStream()) { os.Write(bytes, 0, bytes.Length); } WebResponse resp = req.GetResponse(); cookieHeader = resp.Headers["Set-cookie"];</code>
Contoh Kod: Mendapatkan Kembali Halaman Dilindungi
<code class="language-csharp">string pageSource; string getUrl = "http://..."; // URL of the protected page WebRequest getRequest = WebRequest.Create(getUrl); getRequest.Headers.Add("Cookie", cookieHeader); WebResponse getResponse = getRequest.GetResponse(); using (StreamReader sr = new StreamReader(getResponse.GetResponseStream())) { pageSource = sr.ReadToEnd(); }</code>
Kaedah ini secara berkesan mengautomasikan log masuk tapak web, membolehkan akses kepada halaman web yang dilindungi untuk pengekstrakan dan analisis data melalui pengikisan web. Ingatlah untuk menghormati syarat perkhidmatan tapak web dan robots.txt apabila mengikis.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengautomasikan Log Masuk Laman Web Menggunakan C# untuk Mengikis Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!