Einfacher Webcrawler in C #

8

Ich habe einen einfachen Web-Crawler erstellt, aber ich möchte die Rekursionsfunktion hinzufügen, so dass jede Seite, die geöffnet wird, die URLs auf dieser Seite bekommen kann, aber ich habe keine Ahnung, wie ich das machen kann und auch aufnehmen will Threads, um es schneller zu machen hier ist es mein Code

%Vor%     
Khaled Mohamed 04.05.2012, 16:32
quelle

4 Antworten

8

Ich habe Ihre GetContent-Methode wie folgt korrigiert, um neue Links von der gecrawlten Seite zu erhalten:

%Vor%

Aktualisiert

Korrigiert: regex sollte regexLink sein. Danke @Shashlearner für das Aufzeigen (mein Tipp).

    
Darius Kucinskas 10.05.2012, 10:49
quelle
7

Ich habe etwas Ähnliches mithilfe der Reaktive Erweiterung erstellt.

Ссылка

Ich hoffe, es kann dir helfen.

%Vor%     
Misterhex 07.06.2013 02:37
quelle
2

Im Folgenden finden Sie eine Antwort / Empfehlung.

Ich glaube, Sie sollten dataGridView anstelle von textBox verwenden, wenn Sie es in der GUI betrachten, ist es einfacher, die gefundenen Links (URLs) zu sehen.

Sie könnten ändern:

%Vor%

bis

%Vor%

Nun zu der Frage, die Sie nicht aufgenommen haben:

%Vor%

welche verwendet wurden, wie es geschätzt würde, wenn ich sie bekommen könnte, wie es nicht herausfinden kann.

    
Connor 13.09.2012 14:33
quelle
0

Vom Design her habe ich ein paar Webcrawler geschrieben. Grundsätzlich möchten Sie eine Tiefensuche mit einer Stack-Datenstruktur implementieren. Sie können auch Breathth First Search verwenden, aber Sie werden wahrscheinlich Probleme mit dem Stapelspeicher bekommen. Viel Glück.

    
Tom 13.09.2012 14:41
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ qstntxt ___

Grundsätzlich muss ich etwas Text schaben, der geschachtelte Tags hat.

In etwa so:

%Vor%

Und ich möchte einen Ausdruck, der das hervorbringt:

%Vor%

Ich habe damit für eine Stunde oder mehr gekämpft, ohne Ergebnis.

Jede Hilfe ist willkommen

    
___ answer10424209 ___

Der Zeichenfolgenwert eines Elementknotens ist die Verkettung der Zeichenfolgenwerte von all Textknoten-Nachkommen des Elementknotens in der Reihenfolge des Dokuments.

Sie möchten die Funktion XPath %code% für das Element div aufrufen.

%Vor%

Sie können auch die Funktion normalize-space verwenden, um unerwünschte Leerzeichen zu reduzieren aufgrund von Zeilenumbrüchen und Einrückungen im Quelldokument. Dadurch werden führende und nachfolgende Leerzeichen entfernt und Sequenzen von Leerzeichen durch ein einzelnes Leerzeichen ersetzt. Wenn Sie einen Knoten an normalize-space () übergeben, wird der Knotensatz zuerst in den Zeichenfolgenwert konvertiert. Wenn keine Argumente an normalize-space übergeben werden, wird der Kontextknoten verwendet.

%Vor%

Vielleicht möchten Sie den Kontextknoten effizienter auswählen als den Beispiel-XPath, den ich verwendet habe. ZB kann das folgende Javascript-Beispiel in einigen Browsern gegen diese Seite ausgeführt werden.

%Vor%

Der Leerzeichen-Nur-Text-Knoten zwischen den Elementen %code% und %code% könnte ein Problem sein.

    
___ tag123xpath ___ Der Hauptzweck von XPath besteht darin, Teile eines XML-Dokuments zu adressieren. Es bietet auch grundlegende Möglichkeiten für die Manipulation von Strings, Zahlen und Booleans. XPath verwendet eine kompakte Nicht-XML-Syntax. XPath arbeitet an der abstrakten, logischen Struktur eines XML-Dokuments und nicht an seiner Oberflächensyntax. ___ answer10424386 ___

Verwenden Sie :

%Vor%

Wenn dieser Ausdruck ausgewertet wird, ist das Ergebnis der Zeichenfolgenwert des ersten (und hoffentlich einzigen) Elements %code% im Dokument.

Da der Zeichenfolgenwert eines Elements in der XPath-Spezifikation definiert ist als Verkettung in der Reihenfolge der Dokumente aller Textknoten-Nachkommen, dies ist genau die gewünschte Zeichenfolge.

Da dies eine Anzahl von Textknoten mit vollständigem Leerraum enthalten kann, möchten Sie möglicherweise den angrenzenden weißen und den nachfolgenden Leerraum entfernen und einen solchen Zwischen-Leerraum durch ein einzelnes Leerzeichen ersetzen:

Verwenden Sie :

%Vor%

XSLT-basierte Verifizierung:

%Vor%

, wenn diese Umwandlung auf das bereitgestellte XML-Dokument angewendet wird:

%Vor%

Die beiden XPath-Ausdrücke werden ausgewertet und die Ergebnisse dieser Auswertungen werden in die Ausgabe kopiert:

%Vor%     
___ answer10424664 ___

Wie wäre es damit:

/ div / text () [1] | / div / span / Text () | / div / b / Text () | / div / text () [2]

Hmmss Ich bin mir nicht sicher über den letzten Teil. Du musst vielleicht damit spielen.

    
___ ___ qstnhdr XPath-Ausdruck für den gesamten Text in einem gegebenen Knoten auswählen und den Text seines chldren ___