Tutorial Scrapy: Cum să faci un web-crawler folosind Scrapy?



În acest articol Tutorial Scrapy, veți învăța să creați un web-crawler cu diverse tehnici de extragere a datelor și modalități de stocare a datelor într-o bază de date.

Web scraping este un mod eficient de colectare a datelor de pe paginile web, a devenit un instrument eficient în . Cu diverse biblioteci prezent pentru răzuirea web ca , munca unui om de știință a datelor devine optimă. Scrapy este un cadru web puternic folosit pentru extragerea, procesarea și stocarea datelor. Vom afla cum putem face un crawler web în acest tutorial scrapy, următoarele sunt subiectele discutate în acest blog:

Ce este Scrapy?

Scrapy este un cadru de crawling web gratuit și open-source scris în python. A fost inițial conceput pentru performanță , dar poate fi folosit și pentru extragerea datelor folosind API-uri. Este întreținut de Scrapinghub ltd.





Scrapy este un pachet complet atunci când vine vorba de descărcarea paginilor web, prelucrarea și stocarea datelor pe .

Este ca o putere când vine vorba de răzuirea web cu mai multe moduri de a răzui un site web. Scrapy gestionează cu ușurință sarcini mai mari, răzuind mai multe pagini sau un grup de adrese URL în mai puțin de un minut. Folosește un sucitor care funcționează asincron pentru a obține concurență.



Oferă contracte de păianjen care ne permit să creăm crawler-uri generice, precum și profunde. Scrapy oferă, de asemenea, conducte de articole pentru a crea funcții într-un păianjen care poate efectua diverse operații, cum ar fi înlocuirea valorilor din date etc.

scrapy architecture-scrapy tutorial-edureka

Ce este un Web-Crawler?

Un web-crawler este un program care caută automat documente pe web. Acestea sunt în principal programate pentru acțiuni repetitive pentru navigarea automată.

Cum functioneaza?



Un web-crawler este destul de similar cu un bibliotecar. Acesta caută informațiile de pe web, clasifică informațiile și apoi indexează și catalogează informațiile pentru ca informațiile accesate cu crawlere să fie recuperate și stocate corespunzător.

Operațiile care vor fi efectuate de crawler sunt create în prealabil, apoi crawlerul efectuează automat toate acele operații care vor crea un index. Aceste indexuri pot fi accesate de un software de ieșire.

cum să ridici un număr la o putere în java

Să aruncăm o privire la diferite aplicații pentru care poate fi utilizat un crawler web:

  • Portalurile de comparație a prețurilor caută detalii specifice produsului pentru a face o comparație a prețurilor pe diferite platforme folosind un web-crawler.

  • Un web-crawler joacă un rol foarte important în domeniul mineritului de date pentru recuperarea informațiilor.

  • Instrumentele de analiză a datelor folosesc crawlerele web pentru a calcula datele pentru vizualizările de pagină, precum și pentru linkurile de intrare și de ieșire.

  • Crawlerele servesc și la centrele de informații pentru a colecta date, cum ar fi portalurile de știri.

Cum se instalează Scrapy?

Pentru a instala scrapy pe sistemul dvs., este recomandat să îl instalați pe un virtualenv dedicat. Instalarea funcționează destul de similar cu orice alt pachet din Python, dacă utilizați conda mediu, utilizați următoarea comandă pentru a instala scrapy:

conda install -c conda-forge scrapy

puteți utiliza, de asemenea, mediul pip pentru a instala scrapy,

pip instala scrapy

S-ar putea să existe câteva dependențe de compilare în funcție de sistemul de operare. Scrapy este scris în python pur și poate depinde de câteva pachete python precum:

  • lxml - Este un analizor XML și HTML eficient.

  • parcel - O bibliotecă de extracție HTML / XML scrisă deasupra pe lxml

  • W3lib - Este un ajutor multifuncțional pentru gestionarea adreselor URL și a codificărilor paginilor web

  • twisted - Un cadru de rețea asincron

  • criptografie - Ajută la diferite nevoi de securitate la nivel de rețea

Începerea primului dvs. proiect Scrapy

Pentru a începe primul dvs. proiect scrapy, accesați directorul sau locația în care doriți să salvați fișierele și executați următoarea comandă

scrapy startproject nume proiect

După ce executați această comandă, veți obține următoarele directoare create în acea locație.

  • Denumirea proiectului/

    • scrapy.cfg: implementează fișierul de configurare

  • Denumirea proiectului/

    • __init__.py: modulul python al proiectelor

      casandra column family vs table
    • items.py: fișierul de definire a elementelor de proiect

    • middlewares.py: fișier proiect middlewares

    • pipelines.py: fișier conducte proiect

    • settings.py: fișier setări proiect

  • păianjeni /

    • __init__.py: un director în care mai târziu îți vei pune păianjenii

Realizarea primului tău păianjen

Păianjenii sunt clase pe care le definim și pe care le folosește scrapy pentru a aduna informații de pe web. Trebuie să faceți subclasă scrapy.Spider și să definiți cererile inițiale de făcut.

Scrieți codul pentru spider într-un fișier python separat și îl salvați în directorul projectname / spiders din proiect.

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 /,] pentru adresa URL în adrese URL: randament scrapy. Cerere (url = url, apel invers = self.parse) def parse (auto, răspuns): page = response.url.split ('/') [- 2 ] filename = 'citate-% s.html'% pagină cu deschis (nume fișier, 'wb') ca f: f.write (response.body) self.log ('fișier salvat% s'% nume fișier)

După cum puteți vedea, am definit diverse funcții în păianjenii noștri,

  • nume: identifică păianjenul, trebuie să fie unic pe tot parcursul proiectului.

  • start_requests (): trebuie să returneze un iterabil de cereri cu care păianjenul va începe să se acceseze cu crawlere.

  • parse (): Este o metodă care va fi apelată pentru a gestiona răspunsul descărcat cu fiecare cerere.

Extragerea datelor

Până acum, păianjenul nu extrage date, doar a salvat întregul fișier HTML. Un păianjen scrapy generează de obicei multe dicționare care conțin datele extrase din pagină. Folosim cuvântul cheie randament în python în callback pentru a extrage datele.

cum se setează java classpath în linia de comandă Linux
import scrapy class QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (auto, răspuns): pentru citat în response.css ('div.quote'): randament {'text': quote.css (span.text :: text '). get (),' author ': citat .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Când rulați acest păianjen, acesta va afișa datele extrase cu jurnalul.

Stocarea datelor

Cea mai simplă modalitate de a stoca datele extrase este prin utilizarea exporturilor de feeduri, utilizați următoarea comandă pentru a stoca datele dvs.

scrapy crawl quotes -o quotes.json

Această comandă va genera un fișier quotes.json care conține toate articolele răzuite, serializate în JSON .

Acest lucru ne duce la sfârșitul acestui articol, unde am aflat cum putem realiza un web-crawler folosind scrapy în python pentru a răzuia un site web și a extrage datele într-un fișier JSON. Sper că ești clar cu tot ce ți-a fost împărtășit în acest tutorial.

Dacă ați găsit relevant acest articol despre „Tutorial Scrapy”, consultați o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul.

Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs. și pentru a veni cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un . Cursul este conceput pentru a vă oferi un început avansat în programarea Python și vă va instrui atât pentru conceptele Python de bază, cât și pentru cele avansate, împreună cu diverse ca

Dacă întâmpinați orice întrebare, nu ezitați să vă adresați toate întrebările în secțiunea de comentarii din „Tutorial Scrapy”, iar echipa noastră va fi bucuroasă să vă răspundă.