Vodič za scrapiju: Kako napraviti indeksiranje weba pomoću Scrapia?

U ovom članku iz vodiča za Scrapy naučit ćete izraditi web alat za indeksiranje s različitim tehnikama ekstrakcije podataka i načinima za pohranu podataka u bazu podataka.

Web struganje učinkovit je način prikupljanja podataka s web stranica, postao je učinkovit alat u . S raznim knjižnice prisutan za struganje po internetu poput , rad znanstvenika podataka postaje optimalan. Scrapy je moćan mrežni okvir koji se koristi za izdvajanje, obradu i pohranu podataka. Naučit ćemo kako možemo napraviti indeksiranje weba u ovom vodiču za struganje, slijede teme o kojima se raspravlja na ovom blogu:



Što je Scrapy?

Scrapy je besplatni okvir za internetsko indeksiranje napisan na pythonu. Izvorno je dizajniran za izvođenje , ali se također može koristiti za izdvajanje podataka pomoću API-ja. Održava ga Scrapinghub ltd.

Scrapy je cjelovit paket kada je riječ o preuzimanju web stranica, obradi i pohrani podataka na .

To je poput pogona kada je riječ o struganju weba s više načina za struganje web mjesta. Scrapy s lakoćom rješava veće zadatke, stružući više stranica ili skupinu URL-ova za manje od minute. Koristi twister koji radi asinkrono kako bi se postigla istodobnost.



Pruža paukove ugovore koji nam omogućuju stvaranje generičkih kao i dubinskih pretraživača. Scrapy također osigurava cjevovode predmeta za stvaranje funkcija u pauku koje mogu izvoditi razne operacije poput zamjene vrijednosti u podacima itd.

scrapy arhitektura-scrap tutorial-edureka

Što je web-indeksiranje?

Web-indeksiranje je program koji automatski pretražuje dokumente na webu. Prvenstveno su programirani za ponavljajuće akcije za automatizirano pregledavanje.

Kako radi?



Alat za indeksiranje weba prilično je sličan knjižničaru. Traži informacije na webu, kategorizira ih, a zatim indeksira i katalogizira podatke za indeksirane podatke kako bi se dohvatili i pohranili u skladu s tim.

Operacije koje će alati izvršiti kreiraju se unaprijed, a zatim indeksiranje automatski izvršava sve one operacije koje će stvoriti indeks. Ovim indeksima može pristupiti izlazni softver.

Pogledajmo razne aplikacije za koje se indeksiranje weba može koristiti:

  • Portali za usporedbu cijena pretražuju određene detalje o proizvodu kako bi napravili usporedbu cijena na različitim platformama pomoću alata za indeksiranje.

  • Alat za indeksiranje weba igra vrlo važnu ulogu na polju pretraživanja podataka za pronalaženje podataka.

  • Alati za analizu podataka koriste web-indeksere za izračunavanje podataka i za prikaze stranica, ulazne i izlazne veze.

  • Alati za indeksiranje također služe informacijskim čvorištima za prikupljanje podataka poput novinskih portala.

Kako instalirati scrapiju?

pronađi najveći element u nizu java

Da biste instalirali scrapy na svoj sustav, preporučuje se da ga instalirate na namjenski virtualenv. Instalacija radi prilično slično kao i bilo koji drugi paket u pythonu, ako ga koristite conda okolina, upotrijebite sljedeću naredbu za instaliranje scrapy:

conda install -c conda-forge scrapy

možete koristiti i pip okruženje za instaliranje scrapije,

pip instalirati struganje

Ovisno o vašem operacijskom sustavu može postojati nekoliko ovisnosti o kompilaciji. Scrapy je napisan na čistom pythonu i može ovisiti o nekoliko python paketa poput:

  • lxml - To je učinkovit XML i HTML parser.

  • parcela - HTML / XML biblioteka za izdvajanje napisana na vrhu na lxml

    što su kuhar i lutka
  • W3lib - Višenamjenski je pomagač za rješavanje URL-ova i kodiranja web stranica

  • uvijeno - Asinkroni mrežni okvir

  • kriptografija - pomaže u raznim sigurnosnim potrebama na razini mreže

Pokretanje vašeg prvog projekta otpada

Da biste započeli svoj prvi projekt uklanjanja, idite u direktorij ili mjesto na koje želite spremiti datoteke i izvršite sljedeću naredbu

scrapy startproject naziv projekta

Nakon što izvršite ovu naredbu, dobit ćete sljedeće direktorije kreirane na tom mjestu.

  • naziv projekta/

    • scrapy.cfg: postavlja konfiguracijsku datoteku

  • naziv projekta/

    • __init__.py: python modul projekata

    • items.py: datoteka definicije projektnih stavki

    • middlewares.py: datoteka projekta middlewares

    • pipelines.py: datoteka cjevovoda projekta

    • settings.py: datoteka postavki projekta

  • pauci /

    • __init__.py: direktorij u koji ćete kasnije smjestiti svoje pauke

Izrada vašeg prvog pauka

Paukovi su klase koje definiramo i koje scrapia koristi za prikupljanje podataka s weba. Morate podrazred scrapy.Spider i definirajte početne zahtjeve za podnošenje.

Kôd za svog pauka napišete u zasebnu python datoteku i spremite ga u direktorij ime projekta / pauka u vašem projektu.

quotes_spider.py

uvoz klase scrapije QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] za url u url-ovima: prinos scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'quotes-% s.html'% stranica s otvorenim (naziv datoteke, 'wb') kao f: f.write (response.body) self.log ('spremljena datoteka% s'% ime datoteke)

Kao što vidite, definirali smo razne funkcije naših pauka,

c c # c ++
  • ime: Identificira pauka, on mora biti jedinstven tijekom cijelog projekta.

  • start_requests (): Mora vratiti iteralizirane zahtjeve s kojima će pauk početi puzati.

  • parse (): To je metoda koja će biti pozvana da obrađuje odgovor preuzet sa svakim zahtjevom.

Izdvajanje podataka

Do sada pauk ne vadi nikakve podatke, samo je spremio cijelu HTML datoteku. Pauk strugač obično generira mnogo rječnika koji sadrže podatke izvučene sa stranice. Za izvlačenje podataka koristimo ključnu riječ yield u pythonu u povratnom pozivu.

klasa uvoza scrapija QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response): za citat u response.css ('div.quote'): yield {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Kada pokrenete ovog pauka, on će izvađene podatke prikazati u zapisniku.

Pohranjivanje podataka

Najjednostavniji način za pohranu izvađenih podataka je pomoću izvoza feedova, koristite sljedeću naredbu za pohranu podataka.

scrap indeksirajte citati -o quotes.json

Ova će naredba generirati datoteku quotes.json koja sadrži sve izgrebane stavke, serializirane u JSON .

To nas dovodi do kraja ovog članka, gdje smo naučili kako možemo napraviti web-indeksiranje pomoću scrapia u pythonu za struganje web stranice i izdvajanje podataka u JSON datoteku. Nadam se da vam je jasno sve što je s vama podijeljeno u ovom vodiču.

Ako smatrate da je ovaj članak o 'Vodiču za scrapije' relevantan, pogledajte članak pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta.

Ovdje smo da vam pomognemo u svakom koraku na putovanju i osmislimo kurikulum koji je stvoren za studente i profesionalce koji žele biti . Tečaj je osmišljen kako bi vam pružio prednost u programiranju Pythona i osposobio vas za osnovne i napredne koncepte Pythona, zajedno s raznim Kao

Ako naiđete na neko pitanje, slobodno postavite sva svoja pitanja u odjeljku za komentare u 'Vodiču za scrapije' i naš će tim rado odgovoriti.