Webskrabning er en effektiv måde at indsamle data fra websiderne på, det er blevet et effektivt værktøj til . Med forskellige biblioteker til stede til webskrabning som , bliver en dataforskers arbejde optimalt. Scrapy er en stærk webramme, der bruges til udpakning, behandling og lagring af data. Vi lærer, hvordan vi kan lave en webcrawler i denne skrøbelige vejledning. Følgende er de emner, der diskuteres i denne blog:
- Hvad er Scrapy?
- Hvad er en webcrawler?
- Sådan installeres Scrapy?
- Start af dit første skrøbelige projekt
- Lav din første edderkop
- Uddrag af data
- Lagring af de udpakkede data
Hvad er Scrapy?
Scrapy er en gratis og open source-webcrawling-ramme skrevet i python. Det blev oprindeligt designet til at udføre , men kan også bruges til at udtrække data ved hjælp af API'er. Det vedligeholdes af Scrapinghub ltd.
sql server datatype
Scrapy er en komplet pakke, når det gælder download af websider, behandling og lagring af data på .
Det er som et kraftværk, når det kommer til webskrabning på flere måder at skrabe et websted på. Scrapy håndterer større opgaver let, skraber flere sider eller en gruppe URL'er på mindre end et minut. Det bruger en twister, der fungerer asynkront for at opnå samtidighed.
Det giver edderkoppekontrakter, der giver os mulighed for at skabe generiske såvel som dybe crawlere. Scrapy leverer også elementrørledninger til oprettelse af funktioner i en edderkop, der kan udføre forskellige operationer som at erstatte værdier i data osv.
Hvad er en webcrawler?
En webcrawler er et program, der automatisk søger efter dokumenter på nettet. De er primært programmeret til gentagne handlinger til automatisk browsing.
Hvordan det virker?
En webcrawler er meget lig en bibliotekar. Det ser efter oplysningerne på nettet, kategoriserer oplysningerne og indekserer og katalogiserer derefter oplysningerne for de gennemgange oplysninger, der skal hentes og lagres i overensstemmelse hermed.
De operationer, der udføres af crawleren, oprettes på forhånd, så udfører crawleren alle disse operationer automatisk, hvilket opretter et indeks. Disse indekser kan tilgås med en outputsoftware.
Lad os se på forskellige applikationer, som en webcrawler kan bruges til:
Prissammenligningsportaler søger efter specifikke produktoplysninger for at sammenligne priser på forskellige platforme ved hjælp af en webcrawler.
En webcrawler spiller en meget vigtig rolle inden for data mining til hentning af information.
Dataanalyseværktøjer bruger også webcrawlere til at beregne dataene for sidevisninger, indgående og udgående links.
Crawlere tjener også til informationshubs for at indsamle data såsom nyhedsportaler.
Sådan installeres Scrapy?
For at installere scrapy på dit system anbefales det at installere det på en dedikeret virtualenv. Installation fungerer stort set på samme måde som enhver anden pakke i python, hvis du bruger conda miljø, brug følgende kommando til at installere scrapy:
conda install -c conda-smedje skrøbelig
du kan også bruge pip-miljøet til at installere scrapy,
pip install scrapy
Der kan være et par kompilationsafhængigheder afhængigt af dit operativsystem. Scrapy er skrevet i ren python og kan afhænge af et par pythonpakker som:
lxml - Det er en effektiv XML- og HTML-parser.
pakke - Et HTML / XML-ekstraktionsbibliotek skrevet ovenpå på lxml
W3lib - Det er en multifunktionel hjælper til at håndtere webadresser og kodning af websider
twisted - En asynkron netværksramme
kryptografi - Det hjælper med forskellige sikkerhedsbehov på netværksniveau
Start af dit første skrøbelige projekt
For at starte dit første skrøbelige projekt skal du gå til det bibliotek eller det sted, hvor du vil gemme dine filer og udføre følgende kommando
skrap startprojekt projektnavn
Når du har udført denne kommando, får du følgende mapper oprettet på denne placering.
Projekt navn/
scrum masterroller og ansvar pdf
scrapy.cfg: den implementerer konfigurationsfil
Projekt navn/
__init__.py: projektets python-modul
items.py: projektfiler definitionsfil
middlewares.py: projekt middlewares-fil
pipelines.py: fil med projektledninger
settings.py: projektindstillingsfil
edderkopper /
__init__.py: et bibliotek, hvor du senere placerer dine edderkopper
Lav din første edderkop
Edderkopper er klasser, som vi definerer og skraber bruger til at indsamle information fra internettet. Du skal underklasse scrapy.Spider og definere de oprindelige anmodninger om at fremsætte.
Du skriver koden til din edderkop i en separat pythonfil og gemmer den i projektnavnet / edderkopbiblioteket i dit projekt.
citater_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 / side / 2 /,] for url i urls: give scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filnavn = 'citater-% s.html'% side med åben (filnavn, 'wb') som f: f.write (respons.body) self.log ('gemt fil% s'% filnavn)
Som du kan se, har vi defineret forskellige funktioner i vores edderkopper,
navn: Den identificerer edderkoppen, den skal være unik i hele projektet.
start_requests (): Skal returnere en iterabel af anmodninger, som edderkoppen begynder at kravle med.
parse (): Det er en metode, der kaldes til at håndtere det svar, der downloades med hver anmodning.
Uddrag af data
Indtil nu udpeger edderkoppen ikke nogen data, den gemte bare hele HTML-filen. En scrapy edderkop genererer typisk mange ordbøger, der indeholder de data, der ekstraheres fra siden. Vi bruger afkastnøgleordet i python i tilbagekaldet til at udtrække dataene.
import scrapy class 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'): give {'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 kører denne edderkop, udsender den de udpakkede data med loggen.
Lagring af data
Den enkleste måde at gemme de udpakkede data på er ved hjælp af feedeksport. Brug følgende kommando til at gemme dine data.
scrapy crawl citater -o quotes.json
Denne kommando genererer en quotes.json-fil, der indeholder alle de skrabede genstande, serialiseret i JSON .
Dette bringer os til slutningen af denne artikel, hvor vi har lært, hvordan vi kan lave en webcrawler ved hjælp af scrapy i python til at skrabe et websted og udtrække dataene i en JSON-fil. Jeg håber, du er klar over alt, hvad der er delt med dig i denne vejledning.
Hvis du fandt denne artikel om 'Scrapy Tutorial' relevant, skal du tjekke en betroet online læringsvirksomhed med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.
Vi er her for at hjælpe dig med hvert trin på din rejse og komme med en læseplan, der er designet til studerende og fagfolk, der ønsker at være en . Kurset er designet til at give dig et forspring i Python-programmering og træne dig til både kerne- og avancerede Python-koncepter sammen med forskellige synes godt om
Hvis du støder på spørgsmål, er du velkommen til at stille alle dine spørgsmål i kommentarfeltet i 'Scrapy Tutorial', og vores team vil med glæde svare.