Das sogenannte Datenerfassungsprogramm ist auch ein Webdieb-Programm (bitte schimpfen Sie nicht mit mir), ich hoffe, dass alle
zu Beginn
Ideen habenBeim Herunterladen der Daten müssen Sie sich bei einigen Websites anmelden, bevor Sie sie anzeigen können. Um die entsprechenden Daten zu erhalten, müssen wir den Anmeldebenutzernamen und das Kennwort senden. Ich habe mich jedoch angemeldet, aber sein Server ist kein Müll, und er hat sie umgeleitet. und es wurden insgesamt 2 SESSIONs generiert, ich weiß nicht, wie ich sie erfassen soll^-^ und habe eine Software namens Ethereal erstellt und den folgenden Code hinzugefügt der Header der HTTP-Anfrage.
WebClient myWebClient = new WebClient();
string sessionkey=textBox78.Text;
string refererurl=textBox77.Text;
myWebClient.Headers.Clear();
myWebClient.Headers.Add("Cookie",sessionkey);
myWebClient.Headers.Add("Referer", refererurl);
myWebClient.Headers.Add("User-agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031107 Debian/1.5-3");
Dies täuscht den Server, haha
. Der zweite Teil besteht darin, den Code herunterzuladen
byte[] myDataBuffer = myWebClient.DownloadData(remoteUri);
download = Encoding.Default.GetString(myDataBuffer);
3. Der dritte Teil ist der Datenabgleich. Ich lese den Stream in die Daten ein, verwende dann IndexOf, um die Positionen der beiden Schlüsselfelder abzurufen, und verwende dann Substring, um sie abzurufen Ich weiß, dass das dumm ist, aber es ist schwierig, reguläre Ausdrücke zu verwenden (wer kann mir einen Rat geben). Nach dem Abgleich der Zeichenfolge habe ich die folgende Funktion verwendet, um den HTML-Code zu entfernen.
privater String StripHTML(string strHtml)
{
string [] aryReg ={
@"<script[^>]*?>.*?</script>",
@"<(/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);",
@"&(cent|#162);",
@"&(Pfund|#163);",
@"&(copy|#169);",
@"&#(d+);",
@"-->",
@"<!--.*n"
};
string [] aryRep = {
"",
„“,
„“,
„““,
„&“,
„<“,
">",
„“,
"xa1",//chr(161),
"xa2",//chr(162),
"xa3",//chr(163),
"xa9",//chr(169),
"",
„rn“,
„“
};
string newReg =aryReg[0];
string strOutput=strHtml;
for(int i = 0;i<aryReg.Length;i++)
{
Regex regex = new Regex(aryReg[i],RegexOptions.IgnoreCase);
strOutput = regex.Replace(strOutput,aryRep[i]);
}
strOutput.Replace("<","");
strOutput.Replace(">","");
strOutput.Replace("rn","");
return strOutput;
}
4. Der nächste Schritt besteht darin, es in der Datenbank zu speichern. Aber ich habe immer noch ein Problem, das besagt, dass mein Feld zu lang ist und nicht in die Datenbank geschrieben werden kann. Ich verwende ACCESS und werde es mit SQL
5 versuchen. Wenn Sie gute Vorschläge haben, hinterlassen Sie mir bitte einen Kommentar.
Quelle: http://jetadv.cnblogs.com/archive/2006/02/ 18 /333213.html