Ich möchte eine Website erstellen, die den Vergleich zwischen dem Produktpreis von Amazon und E-Bay zeigt. Welche davon funktioniert besser und warum? Ich bin ein bisschen vertraut mit BeautifulSoup, aber nicht so sehr mit Scrapy Crawler .
python
beautifulsoup
scrapy
web-crawler
Nishant Bhakta
quelle
quelle
Antworten:
Scrapy ist ein Web-Spider- oder Web-Scraper-Framework . Sie geben Scrapy eine Root-URL, um mit dem Crawlen zu beginnen. Anschließend können Sie Einschränkungen für die Anzahl (Anzahl) der URLs festlegen, die Sie crawlen und abrufen möchten. Es ist ein vollständiges Framework für das Web-Scraping oder Crawlen .
Während
BeautifulSoup ist eine Analysebibliothek, die auch sehr gut Inhalte von URLs abruft 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, es sei denn, Sie fügen es manuell in eine Endlosschleife mit bestimmten Kriterien ein.
Mit einfachen Worten, mit Beautiful Soup können Sie etwas Ähnliches wie Scrapy bauen. Beautiful Soup ist eine Bibliothek, während Scrapy ein komplettes Framework ist .
Quelle
quelle
Ich denke, beide sind gut ... ich mache gerade ein Projekt, das beide verwendet. Zuerst verschrotte ich alle Seiten mit Scrapy und speichere sie mit ihren Pipelines in einer Mongodb-Sammlung. Außerdem lade ich die Bilder herunter, die auf der Seite vorhanden sind. Danach benutze ich BeautifulSoup4, um eine Pos-Verarbeitung durchzuführen, bei der ich Attributwerte ändern und einige spezielle Tags erhalten muss.
Wenn Sie nicht wissen, welche Seitenprodukte Sie möchten, ist ein gutes Tool schwierig, da Sie mit ihren Crawlern alle Amazon / eBay-Websites ausführen können, die nach den Produkten suchen, ohne eine explizite for-Schleife zu erstellen.
Schauen Sie sich die Scrapy-Dokumentation an, sie ist sehr einfach zu bedienen.
quelle
Beide verwenden zum Parsen von Daten.
Scrapy :
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 Java-Skripten abzurufen oder Seiten dynamisch zu laden.
Scrapy mit BeautifulSoup ist eine der besten Kombinationen, mit denen wir statische und dynamische Inhalte abkratzen können
quelle
Die Art und Weise, wie ich das mache, besteht darin, die eBay / Amazon-APIs anstelle von Scrapy zu verwenden und dann die Ergebnisse mit BeautifulSoup zu analysieren.
Die APIs bieten Ihnen eine offizielle Möglichkeit, die gleichen Daten abzurufen, die Sie von Scrapy Crawler erhalten hätten, ohne sich darum kümmern zu müssen, Ihre Identität zu verbergen, mit Proxys herumzuspielen usw.
quelle
Scrapy Es handelt sich um ein Web-Scraping-Framework, das Tonnen von Extras enthält, die das Scraping vereinfachen, sodass wir uns nur auf das Crawlen von Logik konzentrieren können. Einige meiner Lieblingssachen, die Scrapy für uns erledigt, sind unten aufgeführt.
Festlegen von Proxy, Benutzeragent, Headern usw .: Mit Scrapy können wir Proxy und andere Header dynamisch festlegen und drehen.
Item Pipelines : Mit Pipelines können wir Daten nach der Extraktion verarbeiten. Zum Beispiel können wir die Pipeline so konfigurieren, dass Daten auf Ihren MySQL-Server übertragen werden.
Cookies: Scrapy verarbeitet Cookies automatisch für uns.
etc.
Schöne Suppe Schöne Suppe ist ein Python-Paket zum Parsen von HTML- und XML-Dokumenten . Mit Beautiful Suppe können Sie also eine Webseite analysieren, die bereits heruntergeladen wurde. BS4 ist sehr beliebt und alt. Im Gegensatz zu Scrapy können Sie schöne Suppen nicht nur zur Herstellung von Crawlern verwenden . Sie benötigen andere Bibliotheken wie Anfragen, Urllib usw., um Crawler mit bs4 zu erstellen. Dies bedeutet wiederum, dass Sie die Liste der gecrawlten URLs verwalten, gecrawlt, Cookies verarbeiten, Proxys verwalten, Fehler behandeln, eigene Funktionen erstellen müssen, um Daten an CSV, JSON, XML usw. zu senden. Wenn Sie beschleunigen möchten dann müssen Sie andere Bibliotheken wie Multiprocessing verwenden .
Um zusammenzufassen.
Scrapy ist ein umfangreiches Framework, mit dem Sie Crawler ohne Probleme schreiben können.
Schöne Suppe ist eine Bibliothek, mit der Sie eine Webseite analysieren können. Es kann nicht alleine zum Abkratzen von Web verwendet werden.
Sie sollten Scrapy auf jeden Fall für Ihre Amazon- und E-Bay-Produktpreisvergleichswebsite verwenden. 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 Crawler und Datenbank fungieren als einzelne Komponenten.
quelle
BeautifulSoup ist eine Bibliothek, mit der Sie Informationen von einer Webseite extrahieren können.
Scrapy hingegen ist ein Framework, das die oben genannten und viele weitere Aufgaben ausführt , die Sie wahrscheinlich in Ihrem Scraping-Projekt benötigen, z. B. Pipelines zum Speichern von Daten.
Sie können diesen Blog überprüfen, um mit Scrapy zu beginnen. Https://www.inkoop.io/blog/web-scraping-using-python-and-scrapy/
quelle
Mit Scrapy können Sie Tonnen von Code speichern und mit der strukturierten Programmierung beginnen. Wenn Ihnen eine der vorab geschriebenen Methoden der Scapy nicht gefällt, kann BeautifulSoup anstelle der Scrapy-Methode verwendet werden. Ein großes Projekt nutzt beide Vorteile.
quelle
Die Unterschiede sind vielfältig und die Auswahl eines Werkzeugs / einer Technologie hängt von den individuellen Bedürfnissen ab.
Einige wesentliche Unterschiede sind:
quelle