Scrapy Tutorial: Hvordan lage en web-crawler ved hjelp av Scrapy?



I denne Scrapy Tutorial-artikkelen lærer du å lage en web-crawler med ulike dataekstraksjonsteknikker og måter å lagre dataene på en database.

Nettskraping er en effektiv måte å samle inn data fra nettsidene, det har blitt et effektivt verktøy i . Med forskjellige biblioteker til stede for nettskraping som , blir en datavitenskapers arbeid optimalt. Scrapy er et kraftig nettrammeverk som brukes til å trekke ut, behandle og lagre data. Vi vil lære hvordan vi kan lage en web-crawler i denne skrapete opplæringen. Følgende er emnene som er diskutert i denne bloggen:

Hva er skrapete?

Skrapete er et gratis og åpen kildekode rammeverk for nettgjennomgang skrevet i python. Den ble opprinnelig designet for å opptre , men kan også brukes til å trekke ut data ved hjelp av APIer. Det vedlikeholdes av Scrapinghub ltd.





Scrapy er en komplett pakke når det gjelder nedlasting av nettsidene, behandling og lagring av data på .

Det er som et kraftverk når det gjelder nettskraping på flere måter å skrape et nettsted. Skrapete takler større oppgaver med letthet, skraper flere sider eller en gruppe nettadresser på mindre enn et minutt. Den bruker en twister som fungerer asynkront for å oppnå samtidighet.



Det gir edderkoppkontrakter som lar oss lage generiske så vel som dype crawlere. Scrapy gir også elementrørledninger for å lage funksjoner i en edderkopp som kan utføre forskjellige operasjoner som å erstatte verdier i data etc.

skrap arkitektur-skrap opplæring-edureka

Hva er en web-crawler?

En web-crawler er et program som søker automatisk etter dokumenter på nettet. De er primært programmert for repeterende handlinger for automatisk surfing.

Hvordan det fungerer?



En web-crawler er ganske lik en bibliotekar. Den leter etter informasjonen på nettet, kategoriserer informasjonen og indekserer og katalogiserer informasjonen for den gjennomsøkte informasjonen som skal hentes og lagres deretter.

Operasjonene som skal utføres av robotsøkeprogrammet blir opprettet på forhånd, og deretter utfører søkeroboten alle de operasjonene automatisk som vil opprette en indeks. Disse indeksene er tilgjengelige med en utgangsprogramvare.

La oss se på forskjellige applikasjoner en web-crawler kan brukes til:

  • Prissammenligningsportaler søker etter spesifikke produktdetaljer for å sammenligne priser på forskjellige plattformer ved hjelp av en web-crawler.

  • En web-crawler spiller en veldig viktig rolle innen data mining for henting av informasjon.

  • Dataanalyseverktøy bruker web-crawlere til å beregne dataene for sidevisninger, innkommende og utgående lenker også.

  • Crawlere tjener også til informasjonsknuter for å samle inn data som nyhetsportaler.

Hvordan installere Scrapy?

For å installere skrap på systemet, anbefales det å installere det på en dedikert virtualenv. Installasjonen fungerer ganske likt hvilken som helst annen pakke i python, hvis du bruker leilighet miljø, bruk følgende kommando for å installere skrapete:

conda installere -c conda-smie skrapete

du kan også bruke pip-miljøet til å installere skrapete,

pip installere skrapete

Det kan være noen kompileringsavhengigheter avhengig av operativsystem. Skrapete er skrevet i ren python og kan avhenge av noen få pythonpakker som:

  • lxml - Det er en effektiv XML- og HTML-parser.

  • pakke - Et HTML / XML-ekstraksjonsbibliotek skrevet på toppen av lxml

  • W3lib - Det er en allsidig hjelper for å håndtere URL-er og nettsidekodinger

  • twisted - Et asynkront nettverksrammer

  • kryptografi - Det hjelper i ulike sikkerhetsbehov på nettverksnivå

Starter ditt første skrapete prosjekt

For å starte ditt første skrapete prosjekt, gå til katalogen eller stedet der du vil lagre filene dine og utfør følgende kommando

skrap startprosjekt prosjektnavn

Etter at du har utført denne kommandoen, får du følgende kataloger opprettet på stedet.

  • prosjektnavn/

    • scrapy.cfg: den distribuerer konfigurasjonsfilen

  • prosjektnavn/

    • __init__.py: prosjektets python-modul

    • items.py: definisjonsfil for prosjektelementer

    • middlewares.py: prosjekt middlewares-fil

    • pipelines.py: fil for prosjektrørledninger

    • settings.py: prosjektinnstillingsfil

  • edderkopper /

Å lage din første edderkopp

Edderkopper er klasser som vi definerer og skrapete bruker for å samle informasjon fra nettet. Du må underklasse scrapy.Spider og definere de første forespørslene.

Du skriver koden for edderkoppen din i en egen pythonfil og lagrer den i prosjektnavnet / edderkoppkatalogen i prosjektet ditt.

quotes_spider.py

importer scrapy class QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] for url in urls: yield scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filnavn = 'sitater-% s.html'% side med åpen (filnavn, 'wb') som f: f.write (respons.body) self.log ('lagret fil% s'% filnavn)

Som du ser, har vi definert forskjellige funksjoner i edderkoppene våre,

  • navn: Den identifiserer edderkoppen, den må være unik gjennom hele prosjektet.

  • start_requests (): Må returnere en iterabel av forespørsler som edderkoppen vil begynne å krype med.

  • parse (): Det er en metode som vil bli kalt for å håndtere svaret som er lastet ned med hver forespørsel.

Pakke ut data

Inntil nå trekker ikke edderkoppen ut noen data, den lagret bare hele HTML-filen. En skrapete edderkopp genererer vanligvis mange ordbøker som inneholder dataene hentet fra siden. Vi bruker avkastningsnøkkelordet i python i tilbakeringingen for å trekke ut dataene.

importer scrapy class QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (selv, respons): for sitat i respons.css ('div.quote'): gi {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Når du kjører denne edderkoppen, vil den sende ut de ekstraherte dataene med loggen.

Lagring av dataene

Den enkleste måten å lagre de ekstraherte dataene på er ved å bruke feedeksport. Bruk følgende kommando for å lagre dataene dine.

skrapete crawl sitater -o sitater.json

Denne kommandoen vil generere en quotes.json-fil som inneholder alle skrapede gjenstander, seriell inn JSON .

Dette bringer oss til slutten av denne artikkelen hvor vi har lært hvordan vi kan lage en web-crawler ved å bruke skrapete i python for å skrape et nettsted og trekke ut dataene i en JSON-fil. Jeg håper du er klar med alt som har blitt delt med deg i denne opplæringen.

Hvis du fant denne artikkelen om “Scrapy Tutorial” relevant, kan du sjekke ut et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden.

Vi er her for å hjelpe deg med hvert trinn på reisen og komme opp med en læreplan som er designet for studenter og fagpersoner som ønsker å være en . Kurset er designet for å gi deg et forsprang i Python-programmering og trene deg for både kjerne- og avanserte Python-konsepter sammen med forskjellige som

Hvis du kommer over noen spørsmål, er du velkommen til å stille alle spørsmålene dine i kommentarfeltet i 'Scrapy Tutorial', og teamet vårt svarer gjerne.