Python Daten Scraping mit Scrapy

7

Ich möchte Daten von einer Website mit Textfeldern, Schaltflächen usw. abkratzen. Meine Anforderung besteht darin, die Textfelder zu füllen und das Formular abzuschicken, um die Ergebnisse zu erhalten und dann die Datenpunkte von der Ergebnisseite abzukratzen.

Ich möchte wissen, dass Scrapy diese Funktion hat oder ob jemand eine Bibliothek in Python empfehlen kann, um diese Aufgabe zu erledigen?

(bearbeitet)
Ich möchte die Daten von der folgenden Website abkratzen:
Ссылка

Meine Anforderung besteht darin, die Werte aus den ComboBoxen auszuwählen und die Suchschaltfläche zu drücken und die Datenpunkte von der Ergebnisseite abzukratzen.

P.S. Ich benutze Selen Firefox-Treiber, um Daten von einer anderen Website zu scrappen, aber diese Lösung ist nicht gut, da der Selen-Firefox-Treiber von FireFox EXE abhängt, d. H. Firefox muss installiert sein, bevor der Scraper ausgeführt wird.

Selenium Firefox-Treiber verbraucht ca. 100 MB Speicher für eine Instanz und meine Anforderung ist es, eine Menge Instanzen gleichzeitig auszuführen, um den Scraping-Prozess schnell zu machen, so dass es auch Speicherbeschränkungen gibt.

Firefox stürzt manchmal während der Ausführung von Scraper ab, weiß nicht warum. Außerdem brauche ich weniger Scraping, was bei Selenium Firefox Treibern nicht möglich ist.

Mein ultimatives Ziel ist es, die Scraper auf Heroku laufen zu lassen und ich habe dort eine Linux-Umgebung, so dass Selen Firefox-Treiber nicht auf Heroku funktionieren. Danke

    
Sibtain Norain 28.05.2013, 06:49
quelle

3 Antworten

15

Im Grunde haben Sie viele Werkzeuge zur Auswahl:

Diese Werkzeuge haben verschiedene Zwecke, aber sie können je nach Aufgabe gemischt werden.

Scrapy ist ein leistungsstarkes und sehr intelligentes Werkzeug zum Crawlen von Websites, um Daten zu extrahieren. Aber wenn es darum geht, die Seite zu manipulieren: Knöpfe anklicken, Formulare ausfüllen - es wird komplizierter:

  • Manchmal ist es einfach, Formulare zum Ausfüllen / Einreichen zu simulieren, indem die zugrundeliegende Formularaktion direkt in scrapy
  • durchgeführt wird
  • Manchmal müssen Sie andere Werkzeuge verwenden, um scrapy zu helfen - wie Mechanisieren oder Selen

Wenn Sie Ihre Frage genauer formulieren, wird es Ihnen helfen zu verstehen, welche Art von Werkzeugen Sie verwenden oder wählen sollten.

Sehen Sie sich ein Beispiel für eine interessante Mischung aus Scrapy und Selen an. Hier besteht die Selenaufgabe darin, auf die Schaltfläche zu klicken und Daten für die Scrapy-Elemente bereitzustellen:

%Vor%

UPDATE:

Hier ist ein Beispiel für die Verwendung von scrapy in Ihrem Fall:

%Vor%

Speichere es in spider.py und starte über scrapy runspider spider.py -o output.json und in output.json siehst du:

%Vor%

Ich hoffe, das hilft.

    
alecxe 28.05.2013, 08:06
quelle
3

Wenn Sie einfach das Formular abschicken und Daten von der resultierenden Seite extrahieren möchten, würde ich gehen nach:

Der Scrapy-Mehrwert hält wirklich die Fähigkeit aufrecht, Links zu folgen und eine Website zu crawlen. Ich glaube nicht, dass es das richtige Werkzeug für den Job ist, wenn Sie genau wissen, wonach Sie suchen.

    
icecrime 28.05.2013 07:13
quelle
2

Ich würde persönlich mechanisieren , da ich keine Erfahrung mit Scrapy habe. Allerdings sollte eine Bibliothek namens scrapy Zweck für Screen Scraping für die Aufgabe bereit sein. Ich würde es einfach mit beiden versuchen und sehen, was die Arbeit am besten / am einfachsten macht.

    
Lucas Kauffman 28.05.2013 07:05
quelle