Samouczek dotyczący Scrapy: Jak stworzyć robota internetowego za pomocą Scrapy?



W tym artykule samouczka Scrapy dowiesz się, jak stworzyć przeszukiwacz sieci z różnymi technikami wyodrębniania danych i sposobami przechowywania danych w bazie danych.

Web scraping to skuteczny sposób gromadzenia danych ze stron internetowych, stał się skutecznym narzędziem w . Z różnymi biblioteki prezent do skrobania sieci, np , praca analityka danych staje się optymalna. Scrapy to potężny framework sieciowy używany do wyodrębniania, przetwarzania i przechowywania danych. Dowiemy się, jak stworzyć robota internetowego z tego samouczka scrapy, poniżej są tematy omówione na tym blogu:

Co to jest Scrapy?

Scrapy to bezpłatna platforma do indeksowania stron internetowych o otwartym kodzie źródłowym napisana w języku Python. Pierwotnie był przeznaczony do działania , ale może być również używany do wyodrębniania danych za pomocą interfejsów API. Jest utrzymywany przez Scrapinghub ltd.





Scrapy to kompletny pakiet, jeśli chodzi o pobieranie stron internetowych, przetwarzanie i przechowywanie danych w .

Jest jak potęga, jeśli chodzi o skrobanie stron internetowych na wiele sposobów. Scrapy z łatwością radzi sobie z większymi zadaniami, zeskrobując wiele stron lub grupę adresów URL w mniej niż minutę. Używa twistera, który działa asynchronicznie, aby osiągnąć współbieżność.



Zapewnia kontrakty pająków, które pozwalają nam tworzyć ogólne i głębokie roboty. Scrapy zapewnia również potoki przedmiotów do tworzenia funkcji w pająku, które mogą wykonywać różne operacje, takie jak zastępowanie wartości w danych itp.

scrapy architecture-scrapy tutorial-edureka

Co to jest robot sieciowy?

Robot sieciowy to program, który automatycznie wyszukuje dokumenty w sieci. Są one głównie zaprogramowane do wykonywania powtarzalnych czynności w celu automatycznego przeglądania.

Jak to działa?



Robot indeksujący jest podobny do bibliotekarza. Wyszukuje informacje w Internecie, kategoryzuje je, a następnie indeksuje i kataloguje informacje w celu pobrania i odpowiedniego przechowywania przeszukanych informacji.

Operacje, które będą wykonywane przez przeszukiwacz, są tworzone wcześniej, a następnie przeszukiwacz wykonuje wszystkie operacje automatycznie, które spowodują utworzenie indeksu. Dostęp do tych indeksów można uzyskać za pomocą oprogramowania wyjściowego.

Przyjrzyjmy się różnym aplikacjom, do których może służyć robot sieciowy:

  • Portale porównujące ceny wyszukują szczegółowe informacje o produktach, aby porównać ceny na różnych platformach za pomocą robota internetowego.

  • Przeszukiwacz sieci odgrywa bardzo ważną rolę w dziedzinie eksploracji danych w celu wyszukiwania informacji.

  • Narzędzia do analizy danych używają robotów internetowych do obliczania danych dotyczących wyświetleń stron, a także linków przychodzących i wychodzących.

  • Crawlery służą również do centrów informacyjnych do zbierania danych, takich jak portale informacyjne.

Jak zainstalować Scrapy?

Aby zainstalować scrapy w systemie, zaleca się zainstalowanie go na dedykowanym virtualenv. Instalacja działa podobnie do każdego innego pakietu w Pythonie, jeśli używasz conda środowisko, użyj następującego polecenia, aby zainstalować scrapy:

conda install -c conda-forge scrapy

możesz również użyć środowiska pip do zainstalowania złomu,

pip install scrapy

W zależności od systemu operacyjnego może istnieć kilka zależności kompilacji. Scrapy jest napisany w czystym Pythonie i może zależeć od kilku pakietów Pythona, takich jak:

  • lxml - Jest to wydajny parser XML i HTML.

  • parcel - Biblioteka do ekstrakcji HTML / XML napisana na górze w lxml

  • W3lib - jest wielofunkcyjnym pomocnikiem do obsługi adresów URL i kodowania stron internetowych

  • twisted - asynchroniczna struktura sieciowa

  • kryptografia - pomaga w różnych potrzebach bezpieczeństwa na poziomie sieci

Rozpoczęcie pierwszego projektu złomowania

Aby rozpocząć swój pierwszy projekt scrapy, przejdź do katalogu lub lokalizacji, w której chcesz zapisać swoje pliki, i wykonaj następujące polecenie

scrapy startproject nazwa projektu

Po wykonaniu tego polecenia otrzymasz następujące katalogi utworzone w tej lokalizacji.

  • Nazwa Projektu/

    • scrapy.cfg: wdraża plik konfiguracyjny

  • Nazwa Projektu/

    • __init__.py: moduł projektu w języku Python

    • items.py: plik definicji elementów projektu

    • middlewares.py: plik oprogramowania pośredniego projektu

    • pipelines.py: plik potoków projektu

    • settings.py: plik ustawień projektu

  • pająki /

    • __init__.py: katalog, w którym później umieścisz swoje pająki

Tworzenie pierwszego pająka

Pająki to klasy, które definiujemy i wykorzystujemy do zbierania informacji z sieci. Musisz utworzyć podklasę scrapy.Spider i zdefiniować początkowe żądania.

Piszesz kod dla swojego pająka w oddzielnym pliku Pythona i zapisujesz go w katalogu projectname / spiders w swoim projekcie.

quotes_spider.py

import scrapy class QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] dla adresu URL w adresach URL: yield scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'quotes-% s.html'% strona z otwartą (nazwa pliku, 'wb') jako f: f.write (response.body) self.log ('zapisany plik% s'% nazwa_pliku)

Jak widać, w naszych pająkach zdefiniowaliśmy różne funkcje,

  • nazwa: Identyfikuje pająka, musi być unikalny w całym projekcie.

  • start_requests (): Musi zwrócić iterowalną liczbę żądań, z którymi pająk zacznie się czołgać.

  • parse (): Jest to metoda, która będzie wywoływana w celu obsługi odpowiedzi pobieranej z każdym żądaniem.

Wyodrębnianie danych

Do tej pory pająk nie wyciągał żadnych danych, po prostu zapisywał cały plik HTML. Pająk scrapy zazwyczaj generuje wiele słowników zawierających dane wyodrębnione ze strony. Używamy słowa kluczowego yield w pythonie w wywołaniu zwrotnym, aby wyodrębnić dane.

import klasy scrapy QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response): for quote in response.css ('div.quote'): yield {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Po uruchomieniu tego pająka wyświetli wyodrębnione dane z dziennikiem.

Przechowywanie danych

Najprostszym sposobem na przechowywanie wyodrębnionych danych jest użycie eksportu kanałów, a do przechowywania danych użyj następującego polecenia.

scrapy indeksowanie cudzysłowy -o quotes.json

To polecenie wygeneruje plik quotes.json zawierający wszystkie zeskrobane elementy, zserializowane w JSON .

To prowadzi nas do końca tego artykułu, w którym dowiedzieliśmy się, w jaki sposób możemy utworzyć robota indeksującego przy użyciu scrapy w Pythonie, aby zeskrobać witrynę i wyodrębnić dane do pliku JSON. Mam nadzieję, że wszystko, co zostało Ci udostępnione w tym samouczku, jest dla Ciebie jasne.

Jeśli uważasz, że ten artykuł w „Samouczku Scrapy” jest odpowiedni, zapoznaj się z zaufana firma zajmująca się edukacją online z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie.

Jesteśmy tutaj, aby pomóc Ci na każdym kroku w Twojej podróży i opracować program nauczania przeznaczony dla studentów i profesjonalistów, którzy chcą być . Kurs ma na celu zapewnienie przewagi w programowaniu w Pythonie i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji Pythona, a także różnych lubić

co to jest java ide

Jeśli napotkasz jakieś pytania, nie krępuj się zadawać je w sekcji komentarzy „Samouczka Scrapy”, a nasz zespół z przyjemnością odpowie.