Opas romuttamiseen: Kuinka tehdä Web-indeksoija käytöstä romun avulla?

Tässä romuttamisopetusartikkelissa opit tekemään web-indeksoijan erilaisilla tiedonpoistotekniikoilla ja tapoilla tallentaa tiedot tietokantaan.

Verkon kaavinta on tehokas tapa kerätä tietoja verkkosivuilta, ja siitä on tullut tehokas työkalu . Erilaisten kanssa kirjastot läsnä web kaavinta kuten , datatieteilijän työstä tulee optimaalinen. Scrapy on tehokas verkkokehys, jota käytetään tietojen purkamiseen, käsittelyyn ja tallentamiseen. Opimme kuinka voimme tehdä indeksoijan tässä romutusoppaassa, tässä blogissa käsitellään seuraavia aiheita:

muuntaa kaksinkertainen kokonaisluvuksi Java-muodossa

Mikä on romu?

Scrapy on ilmainen ja avoimen lähdekoodin web-indeksointikehys, joka on kirjoitettu pythonilla. Se oli alun perin suunniteltu esiintymään , mutta sitä voidaan käyttää myös tietojen purkamiseen API: illa. Sitä ylläpitää Scrapinghub ltd.



Scrapy on täydellinen paketti verkkosivujen lataamiseen, tietojen käsittelyyn ja tallentamiseen .

Se on kuin voimanpesä, kun on kyse verkon kaapimisesta useilla tavoilla kaapata verkkosivusto. Scrapy käsittelee isommat tehtävät helposti, kaapimalla useita sivuja tai URL-osoitteita alle minuutissa. Se käyttää synkronia, joka toimii asynkronisesti samanaikaisuuden saavuttamiseksi.



Se tarjoaa hämähäkkisopimuksia, joiden avulla voimme luoda sekä yleisiä että syviä indeksoijia. Scrapy tarjoaa myös tuoteputkijonoja toimintojen luomiseksi hämähäkkiin, joka voi suorittaa erilaisia ​​toimintoja, kuten korvata datan arvot jne.

romuarkkitehtuuri-romuttamisopetus-edureka

Mikä on Web-indeksoija?

Verkkorobotti on ohjelma, joka etsii asiakirjoja verkosta automaattisesti. Ne on ensisijaisesti ohjelmoitu toistuviin toimiin automaattista selaamista varten.

Kuinka se toimii?



Verkkorobotti on melko samanlainen kuin kirjastonhoitaja. Se etsii tietoja verkosta, luokittelee tiedot ja indeksoi ja luetteloi indeksoidut tiedot noudettavaksi ja tallennettavaksi vastaavasti.

Indeksoijan suorittamat toiminnot luodaan etukäteen, sitten indeksointirobotti suorittaa kaikki ne toiminnot, jotka luovat hakemiston. Näihin hakemistoihin pääsee tulostusohjelmistolla.

Katsotaanpa erilaisia ​​sovelluksia, joihin web-indeksoijaa voidaan käyttää:

  • Hintavertailuportaalit etsivät tiettyjä tuotetietoja verratakseen hintoja eri alustoilla web-indeksoijan avulla.

  • Verkkorobotilla on erittäin tärkeä rooli tiedon louhinnassa tiedonhakua varten.

  • Tietojen analysointityökalut käyttävät indeksointirobotteja laskemaan myös sivunäkymien, saapuvien ja lähtevien linkkien tiedot.

  • Indeksoijat palvelevat myös tietokeskuksissa tietojen keräämiseksi, kuten uutisportaalit.

Kuinka romu asennetaan?

Jos haluat asentaa romun järjestelmään, on suositeltavaa asentaa se erilliseen virtualenv: ään. Asennus toimii melko samalla tavalla kuin mikä tahansa muu python-paketti, jos käytät conda ympäristössä, asenna roskat seuraavalla komennolla:

conda install -c conda-forge romu

voit käyttää pip-ympäristöä myös romun asentamiseen,

pip asennus romu

Käyttöjärjestelmästäsi riippuen voi olla muutama kokoamisriippuvuus. Scrapy kirjoitetaan puhtaana pythonina ja se voi riippua muutamasta python-paketista, kuten:

  • lxml - Se on tehokas XML- ja HTML-jäsennin.

  • paketti - HTML / XML-purkakirjasto, joka on kirjoitettu lxml: n päälle

  • W3lib - Se on monikäyttöinen auttaja URL-osoitteiden ja verkkosivujen koodauksien käsittelyyn

  • kierretty - asynkroninen verkkokehys

  • salaus - Se auttaa erilaisissa verkkotason tietoturvatarpeissa

Ensimmäisen romuprojektin aloittaminen

Aloita ensimmäinen romutusprojekti siirtymällä hakemistoon tai sijaintiin, johon haluat tallentaa tiedostot, ja suorita seuraava komento

aloitusprojektin projektin nimi

Kun olet suorittanut tämän komennon, saat seuraavat hakemistot luotu kyseiseen sijaintiin.

  • projektin nimi/

    • scrapy.cfg: se ottaa käyttöön määritystiedoston

  • projektin nimi/

    • __init__.py: projektien python-moduuli

    • items.py: projektikohteiden määritystiedosto

    • middlewares.py: projekti middlewares-tiedosto

    • pipelines.py: projekti putkistotiedosto

    • settings.py: projektiasetustiedosto

  • hämähäkit /

    • __init__.py: hakemisto, johon myöhemmin laitat hämähäkit

Ensimmäisen hämähäkin tekeminen

Hämähäkit ovat luokkia, jotka määrittelemme ja joita käytämme tietojen keräämiseen verkosta. Hämähäkki ja määrittele aloituslähetykset alaluokassa.

Kirjoitat hämähäkkisi koodin erilliseen python-tiedostoon ja tallennat sen projektisi projekti- / hämähäkkihakemistoon.

quotes_spider.py

tuo romutusluokka QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] URL-osoitteille URL-osoitteissa: tuotto scrapy.Request (URL = url, callback = self.parse) def parse (itse, vastaus): page = response.url.split ('/') [- 2 ] filename = 'quotes-% s.html'% sivu avoimella (tiedostonimi, 'wb') muodossa f: f.write (response.body) self.log ('tallennettu tiedosto% s'% tiedostonimi)

Kuten näette, olemme määrittäneet useita toimintoja hämähäkkeihimme,

  • nimi: Se tunnistaa hämähäkin, sen on oltava ainutlaatuinen koko projektin ajan.

  • start_requests (): On palautettava toistettavissa oleva pyyntö, jonka hämähäkki alkaa indeksoida.

  • parse (): Se on menetelmä, jota kutsutaan käsittelemään jokaisen pyynnön yhteydessä ladattu vastaus.

Pura tietoja

Tähän asti hämähäkki ei poimi mitään tietoja, vaan vain tallensi koko HTML-tiedoston. Hävityshämähäkki tuottaa tyypillisesti monia sanakirjoja, jotka sisältävät sivulta kerätyt tiedot. Käytämme palautushakua pythonissa soittopyynnössä tietojen purkamiseen.

tuo romutusluokka QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parsinta (itse, vastaus): lainaukseen vastauksessa.css ('div.quote'): tuottaa {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Kun suoritat tämän hämähäkin, se tuottaa puretut tiedot lokin kanssa.

Tietojen tallentaminen

Yksinkertaisin tapa tallentaa puretut tiedot on käyttää syötteen vientiä, tallenna tiedot seuraavalla komennolla.

romuttamaton indeksointikurssi -o quotes.json

Tämä komento luo quotes.json-tiedoston, joka sisältää kaikki kaapitut kohteet, sarjoitettuna JSON .

Tämä vie meidät tämän artikkelin loppuun, jossa olemme oppineet, miten voimme tehdä web-indeksoijan python-hakemiston avulla kaavamaan verkkosivuston ja purkamaan tiedot JSON-tiedostoon. Toivon, että olet selvillä kaikesta, mitä sinulle on jaettu tässä opetusohjelmassa.

Jos löysit tämän artikkelin ”Otetusta oppaasta”, ole hyvä, tutustu luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, levinneenä ympäri maailmaa.

Autamme sinua matkan jokaisessa vaiheessa ja keksimme opetussuunnitelman, joka on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla . Kurssi on suunniteltu antamaan sinulle etumatka Python-ohjelmointiin ja kouluttamaan sinua sekä ydin- että edistyneille Python-käsitteille yhdessä muiden kanssa Kuten

Jos kohtaat kysyttävää, voit kysyä kaikki kysymyksesi romuttamisopastuksen kommenttiosasta, ja tiimimme vastaa mielellään.