Yang disebut program pengumpulan data juga merupakan program pencuri web (tolong jangan memarahi saya). Setelah saya selesai menulisnya, saya akan memposting sesuatu di sini. Saya harap semua orang punya ide dan belajar
bersama mengunduh data, beberapa situs web memerlukan login sebelum Anda dapat melihatnya. Untuk mendapatkan data yang sesuai, ini mengharuskan kami mengirimkan nama pengguna dan kata sandi login, tetapi saya login, tetapi servernya bukan sampah, dan dia mengalihkannya, dan total 2 SESI dihasilkan. Untuk SESI kedua ini, saya tidak tahu bagaimana cara menangkapnya. Jadi saya berspekulasi^-^ dan menggunakan perangkat lunak untuk menangkap SESI. Saya membuat perangkat lunak bernama Ethereal dan menambahkan kode berikut ke dalamnya header permintaan HTTP.
WebClient myWebClient = WebClient baru();
string kunci sesi=textBox78.Teks;
string refererurl=textBox77.Teks;
myWebClient.Headers.Clear();
myWebClient.Headers.Add("Cookie",kunci sesi);
myWebClient.Headers.Add("Referer", refererurl);
myWebClient.Headers.Add("Agen-pengguna", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031107 Debian/1.5-3");
Ini menipu server haha
2. Bagian kedua adalah mendownload kodenya
byte[] myDataBuffer = myWebClient.DownloadData(remoteUri);
download = Encoding.Default.GetString(myDataBuffer);
3. Bagian ketiga adalah pencocokan data. Saya membaca aliran ke dalam data, kemudian menggunakan IndexOf untuk mendapatkan posisi dari dua bidang kunci, dan kemudian menggunakan Substring untuk mendapatkannya out., saya tahu ini bodoh, tetapi sulit untuk menggunakan ekspresi reguler (siapa yang bisa memberi saya beberapa saran). Setelah mencocokkan string, saya menggunakan fungsi berikut untuk menghapus kode HTML:
string pribadi StripHTML(string strHtml)
{
tali [] aryReg ={
@"<skrip[^>]*?>.*?</skrip>",
@"<(/s*)?!?((w+:)?w+)(w+(s*=?s*(([""'])( \[""' tbnr]|[^7])*?7|w+)|.{0})|s)*?(/s *)?>",
@"([rn])[s]+",
@"&(quot|#34);",
@"&(amp|#38);",
@"&(lt|#60);",
@"&(gt|#62);",
@"&(nbsp|#160);",
@"&(iexcl|#161);",
@"&(sen|#162);",
@"&(pon|#163);",
@"&(salin|#169);",
@"&#(d+);",
@"-->",
@"<!--.*n"
};
rangkaian [] aryRep = {
"",
"",
"",
""",
"&",
"<",
">",
" ",
"xa1",//chr(161),
"xa2",//chr(162),
"xa3",//chr(163),
"xa9",//chr(169),
"",
"rn",
""
};
string Reg baru =aryReg[0];
string strKeluaran=strHtml;
for(int i = 0;i<aryReg.Panjang;i++)
{
Regex regex = Regex baru(aryReg[i],RegexOptions.IgnoreCase);
strOutput = regex.Replace(strOutput,aryRep[i]);
}
strOutput.Ganti("<","");
strOutput.Ganti(">","");
strOutput.Replace("rn","");
kembalikan strOutput;
}
4. Langkah selanjutnya adalah menyimpannya di database. Semua orang tahu ini. Tapi saya masih mengalami masalah. Saat saya menulis data, muncul PENGECUALIAN yang mengatakan bahwa bidang saya terlalu panjang dan tidak dapat ditulis ke dalam database. Saya menggunakan ACCESS, saya akan mencoba menggunakan SQL.
Jika Anda memiliki saran bagus, silakan tinggalkan saya komentar. Mari kita membuat kemajuan bersama.