Scrapy Tutorial: Hur man skapar en webcrawler med Scrapy?



I den här Scrapy Tutorial-artikeln lär du dig att skapa en webb-sökrobot med olika dataextraktionstekniker och sätt att lagra data i en databas.

Webbskrapning är ett effektivt sätt att samla in data från webbsidorna, det har blivit ett effektivt verktyg i . Med olika bibliotek närvarande för webbskrapning som , blir en datavetares arbete optimalt. Scrapy är ett kraftfullt webbramverk som används för att extrahera, bearbeta och lagra data. Vi kommer att lära oss hur vi kan skapa en webbsökare i den här skrapiga handledningen. Följande ämnen diskuteras i den här bloggen:

Vad är Scrapy?

Scrapy är ett gratis och öppen källkodsram för webbgenomsökning skrivet i python. Den designades ursprungligen för att uppträda , men kan också användas för att extrahera data med API: er. Det underhålls av Scrapinghub ltd.





Scrapy är ett komplett paket när det gäller nedladdning av webbsidor, bearbetning och lagring av data på .

Det är som ett kraftverk när det gäller webbskrapning med flera sätt att skrapa en webbplats. Scrapy hanterar större uppgifter med lätthet, skrapar flera sidor eller en grupp webbadresser på mindre än en minut. Den använder en twister som fungerar asynkront för att uppnå samtidighet.



Det ger spindelkontrakt som tillåter oss att skapa både generiska och djupa sökrobotar. Scrapy tillhandahåller också artikelrörledningar för att skapa funktioner i en spindel som kan utföra olika operationer som att ersätta värden i data etc.

hur man använder trimmetoden i java

skrapig arkitektur-skrapig tutorial-edureka

Vad är en webb-sökrobot?

En webb-sökrobot är ett program som automatiskt söker efter dokument på webben. De är främst programmerade för repetitiva åtgärder för automatiserad surfning.

Hur det fungerar?



En webb-sökrobot liknar en bibliotekarie. Den letar efter informationen på webben, kategoriserar informationen och indexerar och katalogiserar sedan informationen för den genomsökta informationen som ska hämtas och lagras därefter.

Åtgärderna som kommer att utföras av sökroboten skapas i förväg, sedan utför sökroboten alla de åtgärderna automatiskt vilket skapar ett index. Dessa index kan nås med en utdataprogramvara.

Låt oss ta en titt på olika applikationer som en webb-sökrobot kan användas för:

  • Prisjämförelseportaler söker efter specifik produktinformation för att göra en jämförelse av priser på olika plattformar med hjälp av en web-sökrobot.

  • En webb-sökrobot spelar en mycket viktig roll inom datautvinning för att hämta information.

  • Dataanalysverktyg använder webb-sökrobotar för att beräkna data för sidvisningar, inkommande och utgående länkar också.

  • Crawlers tjänar också till informationshubbar för att samla in data som nyhetsportaler.

Hur installerar jag Scrapy?

För att installera scrapy på ditt system rekommenderas det att installera det på en dedikerad virtualenv. Installationen fungerar ungefär som alla andra paket i python, om du använder conda miljö, använd följande kommando för att installera scrapy:

conda install -c conda-forge scrapy

du kan också använda pipmiljön för att installera skrapig,

pip install scrapy

Det kan finnas några beroendeberoende beroende på ditt operativsystem. Scrapy är skrivet i ren python och kan bero på några pythonpaket som:

  • lxml - Det är en effektiv XML- och HTML-parser.

  • paket - Ett HTML / XML-extraktionsbibliotek skrivet ovanpå lxml

  • W3lib - Det är en multifunktionell hjälpare för att hantera webbadresser och webbsidakodningar

  • twisted - En asynkron nätverksram

  • kryptografi - Det hjälper i olika säkerhetsbehov på nätverksnivå

Starta ditt första skrapiga projekt

För att starta ditt första skrapiga projekt, gå till katalogen eller platsen där du vill spara dina filer och kör följande kommando

skrapigt startprojekt projektnamn

När du har utfört det här kommandot får du följande kataloger skapade på den platsen.

  • Projektnamn/

  • Projektnamn/

    • __init__.py: projektets python-modul

    • items.py: projektobjektets definitionsfil

    • middlewares.py: projekt middlewares-fil

    • pipelines.py: projekt pipelines-fil

    • settings.py: projektinställningsfil

  • spindlar /

Gör din första spindel

Spindlar är klasser som vi definierar och skrapar använder för att samla information från webben. Du måste underklassera scrapy.Spider och definiera de första begärandena att göra.

Du skriver koden för din spindel i en separat pythonfil och sparar den i projektnamnet / spindelkatalogen i ditt projekt.

quotes_spider.py

importera scrapy class QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] för webbadress i webbadresser: ge skrapig.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filnamn = 'citat-% s.html'% sida med öppen (filnamn, 'wb') som f: f.write (respons.body) self.log ('sparad fil% s'% filnamn)

Som du kan se har vi definierat olika funktioner i våra spindlar,

  • namn: Det identifierar spindeln, den måste vara unik under hela projektet.

  • start_requests (): Måste returnera en iterabel av förfrågningar som spindeln börjar krypa med.

  • parse (): Det är en metod som kommer att anropas för att hantera svaret som laddas ner med varje begäran.

Extrahera data

Fram till nu extraherar inte spindeln några data, den sparar bara hela HTML-filen. En skrapig spindel genererar vanligtvis många ordböcker som innehåller data som extraheras från sidan. Vi använder avkastningsnyckelordet i python i återuppringningen för att extrahera data.

importera scrapy class QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (själv, svar): för offert i response.css ('div.quote'): ger {'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ör den här spindeln kommer den att extrahera data med loggen.

Lagring av data

Det enklaste sättet att lagra extraherad data är genom att använda flödesexport, använd följande kommando för att lagra dina data.

scrapy crawl citat -o quotes.json

Detta kommando genererar en quotes.json-fil som innehåller alla de skrapade objekten, serierade in JSON .

Detta leder oss till slutet av den här artikeln där vi har lärt oss hur vi kan göra en webb-sökrobot med scrapy i python för att skrapa en webbplats och extrahera data till en JSON-fil. Jag hoppas att du är tydlig med allt som har delats med dig i den här handledningen.

Om du tyckte att den här artikeln om 'Scrapy Tutorial' var relevant, kolla in ett pålitligt online-lärande företag med ett nätverk med mer än 250 000 nöjda elever spridda över hela världen.

Vi är här för att hjälpa dig med varje steg på din resa och komma med en läroplan som är utformad för studenter och yrkesverksamma som vill vara en . Kursen är utformad för att ge dig ett försprång till Python-programmering och träna dig för både grundläggande och avancerade Python-koncept tillsammans med olika tycka om

Om du stöter på några frågor är du välkommen att ställa alla dina frågor i kommentarsektionen i 'Scrapy Tutorial' så svarar vårt team gärna.