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.

  • AttributeError: 'NoneType' Objekt hat kein Attribut 'strip' mit Python WebCrawler
  • Programmatischer Download von Text, der nicht in der Seitenquelle erscheint
  • Wie man Daten von den verlinkten Webseiten auf einer Webseite crawlt, kriechen wir
  • Web-Crawler, der JavaScript interpretieren kann
  • Kriechen eine Liste von Seiten eins nach dem anderen mit schrott
  • DNS-Lookup fehlgeschlagen: Adresse 'your.proxy.com' nicht gefunden: [Errno -5] Keine Adresse mit Hostname verbunden
  • Scrapy Crawling alle Sitemap Links
  • Scrapy - Reaktor nicht wiederherstellbar
  • Analysieren von Ajax-Antworten, um den endgültigen URL-Inhalt in Scrapy abzurufen?
  • Auszug aus dynamischer JSON-Antwort mit Scrapy
  • Scrapy muss alle nächsten Links auf der Website kriechen und zur nächsten Seite wechseln
  • Python ist die beste Programmiersprache der Welt.