Wie kriechen Sie Tausende von Seiten mit kratzigen?

Ich schaue auf Tausende von Seiten zu kriechen und brauche eine Lösung. Jede Seite hat einen eigenen HTML-Code – sie sind alle einzigartigen Seiten. Es ist kein sauberes Datafeed oder API verfügbar. Ich hoffe, die erfassten Daten in eine Art DB zu laden.

Irgendwelche Ideen, wie man das mit scrapy tun kann, wenn möglich?

One Solution collect form web for “Wie kriechen Sie Tausende von Seiten mit kratzigen?”

Wenn ich saubere Daten von Tausenden von Seiten kratzen musste, mit jedem Standort, der ein eigenes Layout, eine Struktur usw. hat, würde ich den folgenden Ansatz implementieren (und das tatsächlich in einigen Projekten getan haben)

  1. Crawler – ein krasses Skript, das diese Seiten mit all ihren Unterseiten kriecht (das ist der einfachste Teil) und verwandelt sie in Klartext
  2. NLP-Verarbeitung – einige grundlegende NLP (natürliche Sprache) Verarbeitung (Tokenisierung, Teil der Sprache (POS) Tagging, benannte Entity-Erkennung (NER)) auf den Klartext
  3. Klassifizierung – ein Klassifikator, der die Daten aus Schritt 2 verwenden kann, um zu entscheiden, ob eine Seite die Daten enthält, die wir suchen – entweder einfache Regeln oder – falls erforderlich – mit dem maschinellen Lernen. Die Seiten, die verdächtigt werden, irgendwelche nutzbaren Daten zu enthalten, werden in den nächsten Schritt gestellt:
  4. Extraktion – ein Grammatik-basierter, statistischer oder maschinell lernender Extraktor, der POS-Tags und NER-Tags (und alle anderen domänenspezifischen Faktoren) verwendet, um diese Daten zu extrahieren, die wir suchen
  5. Aufräumen – einige grundlegende Übereinstimmung von doppelten Aufzeichnungen, die in Schritt 4 erstellt wurden und vielleicht ist es auch notwendig, um zu werfen, um Datensätze, die niedrige Vertrauen Scores in den Schritten 2 bis 4 hatte.

Das geht weit über den Aufbau eines kratzigen Schabers hinaus und erfordert tiefe Kenntnisse und Erfahrungen in NLP und vielleicht maschinelles Lernen.

Auch können Sie nicht erwarten, irgendwo in der Nähe von 100% genaue Ergebnisse aus einem solchen Ansatz zu bekommen. Je nachdem, wie die Algorithmen angepasst und trainiert werden, wird ein solches System entweder einige der gültigen Daten überspringen (falsche Negative) oder Daten abholen, wo eigentlich keine Daten (false positives) sind … oder eine Mischung aus beiden (false Positiven und falschen negativen).

Trotzdem hoffe ich, dass meine Antwort Ihnen hilft, ein gutes Bild zu bekommen.

  • Scrapy Sellerie und mehrere Spinnen
  • Kriechen eine Liste von Seiten eins nach dem anderen mit schrott
  • Machen Sie Scrapy folgen Sie Links und sammeln Sie Daten
  • Bilder von Google Bildsuche herunterladen (Python)
  • Scrapy - Reaktor nicht wiederherstellbar
  • Python-Web-Crawler gibt manchmal die Hälfte des Quellcodes, manchmal alles davon ... Von der gleichen Website
  • Fehler beim Crawlen von Element der spezifischen Website mit krassiger Spinne
  • Probleme beim Versuch, Links in besuchten Links mit scrapy zu crawlen?
  • Scrapy-Ansicht gibt eine leere Seite zurück
  • Analysieren von Ajax-Antworten, um den endgültigen URL-Inhalt in Scrapy abzurufen?
  • Python-Multithreading-Crawler
  • Python ist die beste Programmiersprache der Welt.