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?
- Co to jest robot sieciowy?
- Jak zainstalować Scrapy?
- Rozpoczęcie pierwszego projektu złomowania
- Tworzenie pierwszego pająka
- Wyodrębnianie danych
- Przechowywanie wyodrębnionych danych
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.
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.