Chcę stworzyć stronę internetową pokazującą porównanie cen produktów amazon i e-bay. Który z nich będzie działał lepiej i dlaczego? Jestem trochę zaznajomiony z BeautifulSoup, ale nie za bardzo z crawlerem Scrapy .
python
beautifulsoup
scrapy
web-crawler
Nishant Bhakta
źródło
źródło
Odpowiedzi:
Scrapy to szkielet sieciowy lub skrobak sieciowy. Dajesz Scrapy główny adres URL, aby rozpocząć indeksowanie, a następnie możesz określić ograniczenia dotyczące liczby (liczby) adresów URL, które chcesz indeksować i pobierać itp. Jest to kompletna platforma do skanowania lub indeksowania stron internetowych .
Podczas
BeautifulSoup to biblioteka analizująca która również całkiem nieźle radzi sobie z pobieraniem zawartości z adresu URL i pozwala na bezproblemowe analizowanie niektórych ich części. Pobiera tylko zawartość podanego adresu URL, a następnie zatrzymuje się. Nie indeksuje, chyba że ręcznie umieścisz go w nieskończonej pętli z określonymi kryteriami.
Krótko mówiąc, z Beautiful Soup możesz zbudować coś podobnego do Scrapy. Beautiful Soup to biblioteka, a Scrapy to kompletny framework .
Źródło
źródło
Myślę, że oba są dobre ... Robię teraz projekt, który używa obu. Najpierw usuwam wszystkie strony za pomocą scrapy i zapisuję je w kolekcji mongodb przy użyciu ich potoków, pobierając również obrazy, które istnieją na stronie. Następnie używam BeautifulSoup4, aby wykonać przetwarzanie poz, w którym muszę zmienić wartości atrybutów i uzyskać specjalne znaczniki.
Jeśli nie wiesz, które strony produktów chcesz, dobrym narzędziem będzie scrapy, ponieważ możesz użyć ich robotów do uruchamiania wszystkich witryn amazon / ebay w poszukiwaniu produktów bez tworzenia wyraźnej pętli for.
Spójrz na dokumentację scrapy, jest bardzo prosta w użyciu.
źródło
Oba używają do analizowania danych.
Scrapy :
Piękna Zupa :
Beautiful Soup to biblioteka Pythona do pobierania danych z plików HTML i XML.
możemy użyć tego pakietu do pobierania danych ze skryptu java lub dynamicznego ładowania stron.
Scrapy z BeautifulSoup to jedno z najlepszych combo, z jakim możemy pracować do zgarniania statycznych i dynamicznych treści
źródło
Sposób, w jaki to robię, polega na korzystaniu z API eBay / Amazon zamiast scrapy, a następnie analizuję wyniki za pomocą BeautifulSoup.
Interfejsy API zapewniają oficjalny sposób uzyskiwania tych samych danych, które można uzyskać od robota indeksującego, bez konieczności martwienia się o ukrywanie swojej tożsamości, bałagan z serwerami proxy itp.
źródło
Scrapy Jest to framework do skrobania sieci, który zawiera mnóstwo dodatków, które ułatwiają skrobanie, dzięki czemu możemy skupić się tylko na logice indeksowania. Oto niektóre z moich ulubionych rzeczy, którymi zajmuje się scrapy.
Ustawienie proxy, klienta użytkownika, nagłówków itp .: scrapy pozwala nam dynamicznie ustawiać i obracać proxy i inne nagłówki.
Potoki pozycji : potoki umożliwiają nam przetwarzanie danych po ekstrakcji. Na przykład możemy skonfigurować potok do wysyłania danych na Twój serwer mysql.
Pliki cookie: Scrapy automatycznie obsługuje dla nas pliki cookie.
itp.
Beautiful soup Beautiful Soup to pakiet w Pythonie do analizowania dokumentów HTML i XML . Więc za pomocą Beautiful soup możesz przeanalizować stronę internetową, która została już pobrana. BS4 jest bardzo popularny i stary. W przeciwieństwie do scrapy, nie możesz użyć pięknej zupy tylko do zrobienia crawlerów . Będziesz potrzebować innych bibliotek, takich jak requesty, urllib itp., Aby tworzyć roboty z bs4. Znów oznacza to, że musisz zarządzać listą przeszukiwanych adresów URL, być indeksowanym, obsługiwać pliki cookie, zarządzać serwerem proxy, obsługiwać błędy, tworzyć własne funkcje do przesyłania danych do CSV, JSON, XML itp. Jeśli chcesz przyspieszyć niż będziesz musiał używać innych bibliotek, takich jak przetwarzanie wieloprocesowe .
Podsumowując.
Scrapy to bogaty framework, którego możesz użyć do rozpoczęcia pisania robotów bez żadnych kłopotów.
Piękna zupa to biblioteka, której możesz użyć do przeanalizowania strony internetowej. Nie można go używać samodzielnie do zeskrobywania sieci.
Zdecydowanie powinieneś użyć Scrapy na swojej stronie porównującej ceny produktów Amazon i e-bay. Możesz zbudować bazę danych adresów URL i codziennie uruchamiać robota (zadania cron, seler do planowania indeksowania) i aktualizować cenę w bazie danych, dzięki czemu Twoja witryna będzie zawsze pobierana z bazy danych, a robot i baza danych będą działać jako poszczególne komponenty.
źródło
BeautifulSoup to biblioteka, która umożliwia wyodrębnianie informacji ze strony internetowej.
Z drugiej strony Scrapy to framework, który robi powyższe rzeczy i wiele innych rzeczy, których prawdopodobnie potrzebujesz w swoim projekcie skrobania, takich jak potoki do zapisywania danych.
Możesz sprawdzić ten blog, aby rozpocząć korzystanie ze Scrapy https://www.inkoop.io/blog/web-scraping-using-python-and-scrapy/
źródło
Używając scrapy możesz zaoszczędzić mnóstwo kodu i zacząć od programowania strukturalnego. Jeśli nie podoba ci się żadna z gotowych metod scapy, możesz użyć BeautifulSoup zamiast metody scrapy. Duży projekt ma obie zalety.
źródło
Różnic jest wiele, a wybór dowolnego narzędzia / technologii zależy od indywidualnych potrzeb.
Kilka głównych różnic to:
źródło