webentwicklung-frage-antwort-db.com.de

Unterschied zwischen BeautifulSoup- und Scrapy-Crawler?

Ich möchte eine Website erstellen, die den Vergleich zwischen den Produktpreisen von Amazon und e-bay aufzeigt. Welche davon funktionieren besser und warum? Ich bin ein bisschen mit BeautifulSoup vertraut, aber nicht so sehr mit Scrapy-Crawler .

111
Nishant Bhakta

Scrapy ist ein Web-Spider- oder Web-Scraper-Framework. Sie geben Scrapy eine Stamm-URL, um mit dem Crawlen zu beginnen. Anschließend können Sie Einschränkungen für die Anzahl (URL) von URLs angeben, die Sie crawlen und abrufen möchten . Es ist ein komplettes Framework für das Web-Scraping oder crawlen.

Während

BeautifulSoup ist eine parsing-Bibliothek, die auch sehr gut beim Abrufen von Inhalten von der URL arbeitet und es Ihnen ermöglicht, bestimmte Teile davon problemlos zu analysieren. Es ruft nur den Inhalt der von Ihnen angegebenen URL ab und stoppt dann. Es wird nicht gecrawlt, wenn Sie es manuell mit bestimmten Kriterien in eine Endlosschleife einfügen.

In einfachen Worten, mit Beautiful Soup können Sie etwas Ähnliches wie Scrapy bauen. __ Beautiful Soup ist eine library, während Scrapy ein complete Framework ist.

source: http://www.quora.com/Python-programming-language-1/How-isBeautifulSoup-different-von-Scrapy

193
Medeiros

Ich denke, beide sind gut ... ich mache gerade ein Projekt, das beide verwendet. Zuerst verschrotte ich alle Seiten mit Scrapy und speichere das mit einer Pipeline in einer Mongodb-Sammlung ab. Außerdem lade ich die Bilder herunter, die auf der Seite vorhanden sind . Danach verwende ich BeautifulSoup4, um eine Pos-Verarbeitung vorzunehmen, bei der ich die Attributwerte ändern muss Holen Sie sich spezielle Tags.

Wenn Sie nicht wissen, welche Seiten Sie möchten, ist ein gutes Werkzeug ein Kratzer, da Sie mit ihren Crawlern die gesamte Amazon/ebay-Website ausführen können, ohne nach einer expliziten Schleife zu suchen.

Schauen Sie sich die Scrapy-Dokumentation an, sie ist sehr einfach zu bedienen.

18
rdenadai

Ich verwende die eBay/Amazon-APIs anstelle von Scrapy und analysiere dann die Ergebnisse mit BeautifulSoup.

Mit den APIs erhalten Sie eine offizielle Methode, um dieselben Daten zu erhalten, die Sie von Scrapy Crawler erhalten hätten.

3
baldnbad

Beide verwenden, um Daten zu analysieren.

Scrapy :

  • Scrapy ist ein schnelles Web-Crawler- und Web-Scraping-Framework, das zum Durchsuchen von Websites und zum Extrahieren strukturierter Daten aus ihren Seiten verwendet wird.
  • Es gibt jedoch einige Einschränkungen, wenn Daten aus Java-Skripts oder Dynamischem Laden stammen. Wir können sie durch Pakete wie splash, Selenium usw. überwinden.

BeautifulSoup :

  • Beautiful Soup ist eine Python-Bibliothek zum Abrufen von Daten aus HTML- und XML-Dateien.

  • wir können dieses Paket verwenden, um Daten aus einem Java-Skript abzurufen oder dynamisch Seiten zu laden.

Scrapy with BeautifulSoup ist eine der besten Kombinationen, mit der wir statische und dynamische Inhalte abkratzen können 

1
Arun Augustine

Scrapy Es ist ein Web Scraping Framework das kommt mit Tonnen von Goodies, die das Scrapen erleichtern, so dass wir uns nur auf das Crawlen von Logik konzentrieren können. Einige meiner Lieblingssachen, die Scrapy für uns erledigt, sind unten aufgeführt.

  • Feedexporte : Grundsätzlich können Daten in verschiedenen Formaten wie CSV, JSON, Jsonlines und XML gespeichert werden.
  • Asynchrones Scraping: Scrapy verwendet ein verdrehtes Framework, mit dem wir mehrere URLs gleichzeitig aufrufen können, bei denen jede Anfrage blockierungsfrei verarbeitet wird (Grundsätzlich müssen wir nicht warten, bis eine Anfrage abgeschlossen ist, bevor wir eine weitere Anfrage senden).
  • Selektoren : Hier können wir Scrapy mit wunderschöner Suppe vergleichen. Mit Hilfe von Selektoren können wir bestimmte Daten wie Überschriften, bestimmte Divs mit Klassennamen usw. auf der Webseite auswählen. Scrapy verwendet lxml zum Parsen, was extrem schnell ist als eine schöne Suppe.
  • Proxy, User Agent, Header usw. einstellen: Mit scrapy können wir Proxy und andere Header dynamisch einstellen und drehen.

  • Item Pipelines : Pipelines ermöglichen es uns, Daten nach der Extraktion zu verarbeiten. Zum Beispiel können wir die Pipeline so konfigurieren, dass Daten auf Ihren MySQL-Server übertragen werden.

  • Cookies: scrapy behandelt Cookies automatisch für uns.

usw.

TLDR: scrapy ist ein Framework, das alles bietet, was man zum Erstellen von Crawls in großem Maßstab benötigt. Es bietet verschiedene Funktionen, die die Komplexität des Durchforstens der Websites verbergen. Man kann einfach anfangen, Webcrawler zu schreiben, ohne sich um die Einrichtungslast zu kümmern.

Schöne Suppe Schöne Suppe ist ein Python Paket zum Parsen HTML- und XML-Dokumente . Mit Beautiful soup können Sie eine bereits heruntergeladene Webseite analysieren. BS4 ist sehr beliebt und alt. Im Gegensatz zu Scrapy können Sie mit schöner Suppe nicht nur Crawler herstellen . Sie benötigen andere Bibliotheken wie Requests, Urllib usw., um Crawler mit BS4 zu erstellen. Dies bedeutet wiederum, dass Sie die Liste der zu durchsuchenden URLs verwalten, crawlen, Cookies verarbeiten, Proxys verwalten, Fehler behandeln und Ihre eigenen Funktionen zum Übertragen von Daten an CSV, JSON, XML usw. erstellen müssen als müssen Sie andere Bibliotheken wie Multiprocessing verwenden.

Um zusammenzufassen.

  • Scrapy ist ein umfangreiches Framework, mit dem Sie problemlos Crawler schreiben können.

  • Schöne Suppe ist eine Bibliothek, mit der Sie eine Webseite analysieren können. Es kann nicht allein zum Abkratzen von Bahn verwendet werden.

Verwenden Sie auf jeden Fall Scrapy für Ihre Website zum Preisvergleich von Amazon- und E-Bay-Produkten. Sie können eine Datenbank mit URLs erstellen und den Crawler jeden Tag ausführen (Cron-Jobs, Sellerie zum Planen von Crawls) und den Preis für Ihre Datenbank aktualisieren. Auf diese Weise wird Ihre Website immer aus der Datenbank abgerufen, und der Crawler und die Datenbank fungieren als einzelne Komponenten.

0
Amit

Es gibt viele Unterschiede, und die Auswahl der Werkzeuge/Technologien hängt von den individuellen Bedürfnissen ab.

Einige Hauptunterschiede sind:

  1. BeautifulSoup ist vergleichsweise leicht zu erlernen als Scrapy. 
  2. Die Erweiterungen, Support und Community sind für Scrapy größer als für BeautifulSoup.
  3. Scrapy sollte als Spider betrachtet werden, während BeautifulSoup ein Parser ist.
0
krish___na

Mit scrapy können Sie Tonnen von Code sparen und mit strukturierter Programmierung beginnen. Wenn Sie keine der vorab geschriebenen Methoden von scapy mögen, kann BeautifulSoup anstelle von Scrapy-Methode verwendet werden Projekt bringt beide Vorteile.

0
ethirajit