Mokymas apie laužą: kaip padaryti žiniatinklio tikrintuvą naudojant laužą?



Šiame „Scrapy Tutorial“ straipsnyje išmoksite sukurti žiniatinklio tikrintuvą, naudodami įvairius duomenų išgavimo būdus ir būdus, kaip saugoti duomenis duomenų bazėje.

Žiniatinklio duomenų rinkimas yra veiksmingas būdas rinkti duomenis iš tinklalapių, jis tapo efektyviu įrankiu . Su įvairiais bibliotekos pateikti žiniatinklio grandymui patinka , duomenų mokslininko darbas tampa optimalus. „Scrapy“ yra galinga žiniatinklio sistema, naudojama duomenims išgauti, apdoroti ir saugoti. Išmoksime, kaip mes galime sukurti žiniatinklio tikrintuvą, naudodamiesi šia metraščio pamoka. Toliau pateikiamos šiame tinklaraštyje aptariamos temos:

Kas yra laužas?

Scrapy yra nemokama ir atviro kodo žiniatinklio tikrinimo sistema, parašyta pitone. Iš pradžių jis buvo skirtas atlikti , bet taip pat gali būti naudojamas duomenims išgauti naudojant API. Ją prižiūri „Scrapinghub ltd.“.





'Scrapy' yra visas paketas, kai reikia atsisiųsti tinklalapius, apdoroti ir saugoti duomenis .

Tai yra tarsi jėgainė, kai kalbama apie žiniatinklio grandymą keliais būdais, kaip iškrapštyti svetainę. „Scrapy“ lengvai atlieka didesnes užduotis, per mažiau nei minutę nušveičia kelis puslapius ar URL grupę. Norint pasiekti sutapimą, jis naudoja sinchroniškai veikiantį „twisterį“.



Tai suteikia vorų sutartis, leidžiančias mums sukurti bendrus ir gilius tikrintuvus. „Scrapy“ taip pat teikia elementų vamzdynus, kad būtų galima sukurti funkcijas voroje, kuris gali atlikti įvairias operacijas, pavyzdžiui, pakeisti duomenų reikšmes ir pan.

laužo architektūra-laužo pamoka-edureka

Kas yra žiniatinklio tikrintuvas?

Žiniatinklio tikrintuvas yra programa, kuri internete automatiškai ieško dokumentų. Jie pirmiausia užprogramuoti pakartotiniams veiksmams automatiniam naršymui.

Kaip tai veikia?



Interneto tikrintuvas yra gana panašus į bibliotekininką. Ji ieško informacijos žiniatinklyje, ją suskirsto į kategorijas ir indeksuoja bei kataloguoja informaciją, pagal kurią tikrinamą informaciją reikia atitinkamai gauti ir saugoti.

Veiklos, kurias atliks tikrintuvas, bus sukurtos iš anksto, tada tikrintuvas automatiškai atliks visas tas operacijas, kurios sukurs indeksą. Šiuos indeksus galima pasiekti išvesties programine įranga.

Pažvelkime į įvairias programas, kurioms gali būti naudojamas žiniatinklio tikrintuvas:

  • Kainų palyginimo portalai ieško konkrečios informacijos apie produktą, kad galėtų palyginti kainas skirtingose ​​platformose naudodami žiniatinklio tikrintuvą.

  • Žiniatinklio tikrintuvas vaidina labai svarbų vaidmenį duomenų gavybos srityje ieškant informacijos.

  • Duomenų analizės įrankiai naudoja žiniatinklio tikrintuvus, taip pat apskaičiuodami puslapių peržiūrų, gaunamų ir siunčiamų nuorodų duomenis.

  • Tikrintuvai taip pat tarnauja informacijos centrams, kad surinktų tokius duomenis kaip naujienų portalai.

Kaip įdiegti laužą?

Norėdami įdiegti laužą savo sistemoje, rekomenduojama jį įdiegti į tam skirtą virtualųjį tinklalapį. Diegimas veikia panašiai kaip ir bet kuris kitas „python“ paketas, jei naudojate conda aplinkoje, naudokite šią komandą, kad įdiegtumėte laužą:

conda install -c conda-forge laužas

taip pat galite naudoti „pip“ aplinką, kad įdiegtumėte iškarpas,

pip įdiegti laužas

Priklausomai nuo jūsų operacinės sistemos, gali būti keletas kompiliavimo priklausomybių. Laužas yra parašytas grynu pitonu ir gali priklausyti nuo kelių pitono paketų, tokių kaip:

  • lxml - tai efektyvus XML ir HTML analizatorius.

  • siuntinys - HTML / XML ištraukimo biblioteka, užrašyta viršuje lxml

  • W3lib - tai daugiafunkcis pagalbininkas, dirbantis su URL ir tinklalapių koduotėmis

  • susukta - asinchroninė tinklo sistema

  • kriptografija - ji padeda patenkinti įvairius tinklo lygio saugumo poreikius

Pradedate savo pirmąjį laužo projektą

Norėdami pradėti savo pirmąjį atsisakymo projektą, eikite į katalogą arba vietą, kurioje norite išsaugoti failus, ir vykdykite šią komandą

laužo pradžios projekto pavadinimas

Vykdę šią komandą gausite šiuos katalogus, sukurtus toje vietoje.

  • projekto pavadinimas/

    • scrapy.cfg: jis pateikia konfigūracijos failą

  • projekto pavadinimas/

    • __init__.py: projektų python modulis

    • items.py: projekto elementų apibrėžimo failas

    • middlewares.py: projekto tarpinių failų failas

    • pipelines.py: projekto vamzdynų byla

    • settings.py: projekto nustatymų failas

  • vorai /

Padarykite savo pirmąjį vorą

Vorai - tai klasės, kurias mes apibrėžiame ir naudojamės metmenims rinkti informacijai iš interneto. Turite perduoti poklasį. Spider ir apibrėžkite pradines užklausas.

Jūs rašote savo voro kodą atskirame pitono faile ir išsaugote jį projekto pavadinimo / vorų kataloge.

quotes_spider.py

importuoti iškarpų klasę „QuotesSpider“ („scrapy.Spider“): vardas = „citatos“ def pradžios_request (savarankiškai): URL = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] URL adresams: palieskite scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'quotes-% s.html'% page with open (filename, 'wb') as f: f.write (response.body) self.log ('išsaugotas failas% s'% failo vardas)

Kaip matote, mes nustatėme įvairias savo vorų funkcijas,

  • pavadinimas: Jis identifikuoja vorą, jis turi būti unikalus viso projekto metu.

  • start_requests (): turi pateikti pakartotiną užklausų skaičių, kuriuos voras pradės tikrinti.

  • parse (): Tai metodas, kuris bus naudojamas apdorojant atsakymą, atsisiųstą su kiekviena užklausa.

Duomenų išskyrimas

Iki šiol voras neišgauna jokių duomenų, jis tiesiog išsaugojo visą HTML failą. Išmetamas voras paprastai sukuria daug žodynų, kuriuose yra iš puslapio ištraukti duomenys. Duomenims išgauti mes naudojame „return“ raktinį žodį „python“ skambutyje.

importuoti iškarpų klasę „QuotesSpider“ („scrapy.Spider“): pavadinimas = „citatos“ pradžios_url = [http://quotes.toscrape.com/page/1/ “, http://quotes.toscrape.com/page/2/,] def analizuoti (savarankiškai, atsakyti): citatos atsakymui.css ('div.quote'): gauti {'text': quote.css (span.text :: text '). get (),' author ': citata .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Kai paleisite šį vorą, jis išgaus išgautus duomenis su žurnalu.

Duomenų saugojimas

Paprasčiausias būdas išsaugoti išgautus duomenis yra eksportuoti sklaidos kanalus. Duomenims saugoti naudokite šią komandą.

iškarpytos nuskaitymo citatos -o citatos.json

Ši komanda sugeneruos failą quotes.json, kuriame bus visi nukopijuoti elementai JSON .

Tai atveda prie šio straipsnio pabaigos, kur mes sužinojome, kaip mes galime padaryti žiniatinklio tikrintuvą naudodamiesi python pypkėmis, kad nuskaitytumėte svetainę ir išgautumėte duomenis į JSON failą. Tikiuosi, kad jums aišku viskas, kas su jumis buvo pasidalinta šioje pamokoje.

Jei jums pasirodė, kad šis straipsnis yra „Dalies pamoka“, patikrinkite patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą, pasklido po visą pasaulį.

Mes norime jums padėti kiekviename žingsnyje ir parengti mokymo programą, skirtą studentams ir specialistams, norintiems būti . Kursas sukurtas tam, kad galėtumėte pradėti pažvelgti į „Python“ programavimą ir išmokyti pagrindines ir pažangiausias „Python“ koncepcijas kartu su įvairiomis Kaip

Jei kiltų klausimų, nedvejodami užduokite visus klausimus komentarų skyriuje „Laužymo pamoka“, o mūsų komanda mielai atsakys.