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?
- Hva er en web-crawler?
- Hvordan installere Scrapy?
- Starter ditt første skrapete prosjekt
- Å lage din første edderkopp
- Pakke ut data
- Lagring av ekstraherte data
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.
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 /
__init__.py: en katalog der du senere vil sette edderkopper
datadrevet testing i selen
Å 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.