Vanaraua õpetus: kuidas veebirobotit sissekannet kasutades teha?

Selles Scrapy Tutoriali artiklis õpite tegema veebirobotit erinevate andmete väljavõtte tehnikate ja andmete andmebaasi salvestamise viisidega.

Veebi kraapimine on tõhus viis veebilehtedelt andmete kogumiseks, sellest on saanud tõhus tööriist . Erinevatega raamatukogud kohal veebi kraapimiseks meeldib , muutub andmeteadlase töö optimaalseks. Scrapy on võimas veebiraamistik, mida kasutatakse andmete eraldamiseks, töötlemiseks ja salvestamiseks. Selles sissekande õpetuses õpime, kuidas veebirobotit teha, järgmisi teemasid käsitletakse selles blogis:



Mis on sissekanne?

Scrapy on tasuta ja avatud lähtekoodiga veebi roomamise raamistik, mis on kirjutatud pythonis. Algselt oli see mõeldud esitamiseks , kuid seda saab kasutada ka API-de abil andmete väljavõtmiseks. Seda hooldab Scrapinghub ltd.



Scrapy on täielik pakett veebilehtede allalaadimisel, andmete töötlemisel ja salvestamisel .

Veebikraapimise osas on see nagu jõujaam, millel on mitu võimalust veebisaidi kraapimiseks. Scrapy saab suuremate ülesannetega hõlpsasti hakkama, kraapides mitu lehte või URL-ide rühma vähem kui minutiga. See kasutab samaaegsuse saavutamiseks asünkroonselt töötavat keerutajat.



See pakub ämblikulepinguid, mis võimaldavad meil luua nii üldisi kui ka sügavaid indekseerijaid. Scrapy pakub ka üksuste torujuhtmeid, et luua ämblikus funktsioone, mis võivad teha erinevaid toiminguid, näiteks andmete väärtuste asendamine jne.

scrap arhitektuur-scrapy juhendaja-edureka

Mis on veebirobot?

Veebirobot on programm, mis otsib dokumente veebis automaatselt. Need on peamiselt programmeeritud automatiseeritud sirvimise korduvateks toiminguteks.

Kuidas see töötab?



Veebirobot on raamatukoguhoidjaga üsna sarnane. See otsib teavet veebist, kategoriseerib teabe ning indekseerib ja kataloogib seejärel indekseeritud teabe teabe, mis vastavalt leitakse ja salvestatakse.

Indekseerija poolt tehtavad toimingud luuakse eelnevalt, seejärel teeb indekseerija kõik need toimingud automaatselt, mis loovad indeksi. Nendele indeksitele pääseb juurde väljundtarkvara abil.

Heidame pilgu erinevatele rakendustele, mille jaoks veebirobotit saab kasutada.

  • Hinnavõrdlusportaalid otsivad konkreetseid toote üksikasju, et võrrelda veebirobotit kasutades erinevaid platvorme.

  • Veebirobotil on teabe hankimisel andmekaevandamise valdkonnas väga oluline roll.

    javascript saada massiivi suurus
  • Andmeanalüüsi tööriistad kasutavad veebirobotid ka lehevaatamiste, sissetulevate ja väljaminevate linkide andmete arvutamiseks.

  • Indekseerijad teenivad infokeskusi ka andmete, näiteks uudisteportaalide, kogumiseks.

Kuidas sissekannet installida?

Scrapsi oma süsteemi installimiseks on soovitatav see installida spetsiaalsele virtualenv-le. Installimine toimib üsna sarnaselt mis tahes muu Pythoni paketiga, kui te seda kasutate konda keskkonnas kasutage romude installimiseks järgmist käsku:

conda install -c conda-forge scrapy

saate kasutada ka pipi keskkonda romude installimiseks,

pip installi romu

Sõltuvalt teie operatsioonisüsteemist võib olla vähe kompileerimise sõltuvusi. Scrapy kirjutatakse puhtas pythonis ja see võib sõltuda mõnest pythoni paketist, näiteks:

  • lxml - see on tõhus XML- ja HTML-parser.

  • pakk - HTML / XML-i väljavõtte kogu, mis on kirjutatud lxml-le

  • W3lib - see on mitmeotstarbeline abimees URL-ide ja veebilehtede kodeeringutega tegelemiseks

  • keerutatud - asünkroonne võrguraamistik

  • krüptograafia - see aitab lahendada mitmesuguseid võrgutaseme turvavajadusi

Esimese romuprojekti alustamine

Esimese romuprojekti alustamiseks minge kataloogi või asukohta, kuhu soovite oma failid salvestada, ja täitke järgmine käsk

scrapy startproject projekti nimi

Pärast selle käsu täitmist saate selles asukohas luua järgmised kataloogid.

  • projekti nimi /

    xml-faili sõelumine Java-s
    • scrapy.cfg: see juurutab konfiguratsioonifaili

  • projekti nimi /

    • __init__.py: projektide pythoni moodul

    • items.py: projektiüksuste määratlusfail

    • middlewares.py: projekti vaheseadmete fail

    • pipelines.py: projekti torujuhtmete fail

    • settings.py: projekti seadete fail

  • ämblikud /

    • __init__.py: kataloog, kuhu hiljem oma ämblikud panete

Esimese ämbliku tegemine

Ämblikud on klassid, mille me määratleme ja mida scrap kasutab veebist teabe kogumiseks. Peate alamklassi vanaraua. Spider ja määrake esialgsed taotlused.

Kirjutate oma ämbliku koodi eraldi pythoni faili ja salvestate selle projekti projekti / nime ämblikud kataloogi.

quotes_spider.py

impordi vanarauaklassi QuotesSpider (scrapy.Spider): nimi = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] URL-i URL-idele: saagikogumine. Taotlus (url = url, tagasihelistamine = self.parse) def parsimine (ise, vastus): page = response.url.split ('/') [- 2 ] failinimi = 'quotes-% s.html'% leht avatud (failinimi, 'wb') kujul f: f.write (vastus.keha) self.log ('salvestatud fail% s'% failinimi)

Nagu näete, oleme oma ämblikutes määratlenud erinevad funktsioonid,

  • nimi: See tuvastab ämbliku, see peab kogu projekti vältel olema ainulaadne.

  • start_requests (): Peab tagastama korduva arvu taotlusi, millega ämblik hakkab roomama.

  • parse (): See on meetod, mida kutsutakse iga päringuga alla laaditud vastuse käsitlemiseks.

Andmete väljavõtmine

Siiani ei eralda ämblik andmeid, vaid salvestas kogu HTML-faili. Vanaraua ämblik genereerib tavaliselt palju sõnastikke, mis sisaldavad lehelt eraldatud andmeid. Andmete väljavõtmiseks kasutame tagasihelistamisel pythonis tootlus märksõna.

impordi vanarauaklassi QuotesSpider (scrapy.Spider): nimi = 'jutumärgid' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parsimine (ise, vastus): tsitaadi saamiseks vastuses.css ('div.quote'): saage {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Selle ämbliku käivitamisel väljastab see väljavõtte andmed koos logiga.

Andmete salvestamine

Ekstraheeritud andmete salvestamiseks on lihtsaim viis voo ekspordi abil. Andmete salvestamiseks kasutage järgmist käsku.

tühjad indekseerimise hinnapakkumised -o quotes.json

See käsk genereerib faili quotes.json, mis sisaldab kõiki kraabitud üksusi, mis on järjestatud JSON .

Sellega jõuame selle artikli lõppu, kus oleme õppinud, kuidas teha veebirobotit pythonis oleva kraapimise abil veebisaidi kraapimiseks ja andmete JSON-faili ekstrakteerimiseks. Loodan, et teil on selge kõik see, mida teiega selles õpetuses on jagatud.

Kui leiate, et see artikkel jaotises „Vanaraua õpetus” on asjakohane, vaadake järgmist usaldusväärne veebiõppeettevõte, mille võrgustik sisaldab üle 250 000 rahuloleva õppija, levis üle kogu maailma.

Oleme siin, et aidata teid igal sammul oma teekonnal ja koostada õppekava, mis on mõeldud üliõpilastele ja spetsialistidele, kes soovivad olla . Kursus on loodud selleks, et anda teile algus Pythoni programmeerimises ja õpetada teid nii Pythoni põhi- kui ka edasijõudnute mõistete jaoks koos erinevate võimalustega meeldib

Kui teil on küsimusi, küsige julgelt kõiki küsimusi jaotise „Tutvustusõpetus“ kommentaaride osas ja meie meeskond vastab sellele hea meelega.