Tutorial de Scrapy: Com fer un rastrejador web amb Scrapy?



En aquest article del Tutorial Scrapy, aprendreu a fer un rastrejador web amb diverses tècniques d’extracció de dades i maneres d’emmagatzemar-les en una base de dades.

El rascat web és una forma eficaç de recopilar dades de les pàgines web, ja que s'ha convertit en una eina eficaç a . Amb diversos biblioteques present per al rascat web com , el treball d’un científic de dades esdevé òptim. Scrapy és un potent marc web que s’utilitza per extreure, processar i emmagatzemar dades. Aprendrem com podem fer un rastrejador web en aquest tutorial descarregat, a continuació es detallen els temes d’aquest bloc:

Què és Scrapy?

Scrapy és un marc de rastreig web gratuït i de codi obert escrit en python. Originalment va ser dissenyat per actuar , però també es pot utilitzar per extreure dades mitjançant API. La manté Scrapinghub ltd.





Scrapy és un paquet complet a l'hora de descarregar les pàgines web, processar i emmagatzemar les dades a .

És com una potència pel que fa al rascat web amb diverses maneres de rascar un lloc web. Scrapy gestiona tasques més grans amb facilitat, rascant diverses pàgines o un grup d’URL en menys d’un minut. Utilitza un retorçador que funciona de manera asíncrona per aconseguir la simultaneïtat.



Proporciona contractes d’aranya que ens permeten crear rastrejadors genèrics i profunds. Scrapy també proporciona canonades d’elements per crear funcions en una aranya que pugui realitzar diverses operacions, com ara substituir valors en dades, etc.

scrapy architecture-scrapy tutorial-edureka

Què és un rastrejador web?

Un rastrejador web és un programa que cerca documents al web automàticament. Estan principalment programats per a accions repetitives per a la navegació automàtica.

Com funciona?



Un rastrejador web és força similar a un bibliotecari. Cerca la informació al web, classifica la informació i, a continuació, indexa i cataloga la informació de la informació rastrejada per recuperar-la i emmagatzemar-la en conseqüència.

Les operacions que realitzarà el rastrejador es creen prèviament i, a continuació, el rastrejador realitza totes aquelles operacions que crearan un índex. Es pot accedir a aquests índexs mitjançant un programari de sortida.

diferència entre la sobrecàrrega del mètode i la substitució del mètode

Vegem diverses aplicacions per a les quals es pot utilitzar un rastrejador web:

  • Els portals de comparació de preus cerquen detalls específics del producte per fer una comparació de preus en diferents plataformes mitjançant un rastrejador web.

  • Un rastrejador web té un paper molt important en el camp de la mineria de dades per a la recuperació d’informació.

  • Les eines d’anàlisi de dades utilitzen rastrejadors web per calcular les dades de pàgines vistes, enllaços entrants i sortints.

  • Els rastrejadors també serveixen als centres d'informació per recopilar dades, com ara portals de notícies.

Com instal·lar Scrapy?

Per instal·lar scrapy al vostre sistema, es recomana instal·lar-lo en un virtualenv dedicat. La instal·lació funciona de manera similar a qualsevol altre paquet de Python, si utilitzeu conda entorn, utilitzeu l'ordre següent per instal·lar scrapy:

conda install -c conda-forge scrapy

també podeu utilitzar l'entorn pip per instal·lar scrapy,

instal·lar pip scrapy

Pot haver-hi algunes dependències de compilació en funció del vostre sistema operatiu. Scrapy està escrit en python pur i pot dependre d'alguns paquets de python com:

  • lxml: és un analitzador XML i HTML eficient.

  • parcel: una biblioteca d'extracció HTML / XML escrita a la part superior a lxml

  • W3lib: és un ajutador polivalent per tractar URL i codificacions de pàgines web

  • torçat: marc de xarxa asíncron

  • criptografia: ajuda a diverses necessitats de seguretat a nivell de xarxa

Començant el vostre primer projecte Scrapy

Per iniciar el vostre primer projecte Scrapy, aneu al directori o ubicació on voleu desar els fitxers i executeu l'ordre següent

nom del projecte del projecte de partida inicial

Després d'executar aquesta ordre, obtindreu els següents directoris en aquesta ubicació.

  • nom del projecte/

    • scrapy.cfg: desplega el fitxer de configuració

  • nom del projecte/

    • __init__.py: mòdul python dels projectes

      analitzant fitxers XML a Java
    • items.py: fitxer de definició d’elements del projecte

    • middlewares.py: fitxer de middlewares del projecte

    • pipelines.py: fitxer de canalitzacions del projecte

    • settings.py: fitxer de configuració del projecte

  • aranyes /

    • __init__.py: un directori on més endavant col·locareu les vostres aranyes

Fent la teva primera aranya

Les aranyes són classes que definim i que s’utilitzen per recollir informació del web. Heu de subclassar scrapy.Spider i definir les sol·licituds inicials que cal fer.

Escriviu el codi de la vostra aranya en un fitxer python separat i el deseu al directori nom del projecte / aranyes del vostre projecte.

quotes_spider.py

importació de classe scrapy QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / pàgina / 2 /,] per a URL en urls: rendiment scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'cometes-% s.html'% pàgina amb obert (nom de fitxer, 'wb') com a f: f.write (response.body) self.log ('fitxer desat% s'% nom de fitxer)

Com podeu veure, hem definit diverses funcions a les nostres aranyes,

  • nom: identifica l’aranya, ha de ser única durant tot el projecte.

  • start_requests (): ha de retornar un iterable de sol·licituds amb què l’aranya començarà a rastrejar-se.

  • parse (): és un mètode que es cridarà per gestionar la resposta descarregada amb cada sol·licitud.

Extracció de dades

Fins ara l’aranya no extreia cap dada, només desava tot el fitxer HTML. Una aranya escrapada sol generar molts diccionaris que contenen les dades extretes de la pàgina. Utilitzem la paraula clau rendiment en python a la devolució de trucada per extreure les dades.

com fer una matriu dinàmica a Java
importació de classe scrapy QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (auto, resposta): per a pressupostos en response.css ('div.quote'): rendiment {'text': quote.css (span.text :: text '). get (),' author ': pressupost .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Quan executeu aquesta aranya, sortirà les dades extretes amb el registre.

Emmagatzematge de les dades

La forma més senzilla d'emmagatzemar les dades extretes és mitjançant l'exportació de feeds. Utilitzeu l'ordre següent per emmagatzemar les vostres dades.

crap de rastreig escrapós -o quotes.json

Aquesta ordre generarà un fitxer quotes.json que conté tots els elements rascats, serialitzats a JSON .

Això ens porta al final d’aquest article, on hem après com podem fer un rastrejador web amb scrapy en python per rascar un lloc web i extreure les dades en un fitxer JSON. Espero que tingueu clar tot el que us ha estat compartit en aquest tutorial.

Si heu trobat rellevant aquest article sobre 'Scrapy Tutorial', consulteu el document una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món.

Estem aquí per ajudar-vos en cada pas del vostre viatge i oferir un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser . El curs està dissenyat per donar-vos un avantatge en la programació de Python i formar-vos tant per a conceptes bàsics com per a Python avançats juntament amb diversos M'agrada

Si teniu cap pregunta, no dubteu a fer-vos totes les vostres preguntes a la secció de comentaris de 'Tutorial de Scrapy' i el nostre equip estarà encantat de respondre-us.