Scrapy Tutorial: Hvordan laver man en webcrawler ved hjælp af Scrapy?



I denne Scrapy Tutorial-artikel lærer du at lave en webcrawler med forskellige dataekstraktionsteknikker og måder at gemme dataene på en database.

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?

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.

skrap arkitektur-skrap tutorial-edureka

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.