Esimerkiksi, jos haluat saada säännöllisiä päivityksiä suosikkituotteistasi alennustarjouksiin tai haluat automatisoida suosikkikausi jaksojen lataamisen yksitellen, eikä verkkosivustolla ole siihen mitään sovellusliittymää, ainoa vaihtoehto sinulla on jäljellä web-kaavinta.Verkon kaavinta voi olla laitonta joillakin verkkosivustoilla sen mukaan, salliko verkkosivusto sen vai ei. Sivustot käyttävät robotteja.txt ”-tiedosto määrittääksesi URL-osoitteet, joita ei saa romuttaa. Voit tarkistaa, sallivatko verkkosivustot sen, liittämällä robotteja.txt ”verkkosivuston verkkotunnuksella. Esimerkiksi https: // www.Google.com / robotit.txt
Tässä artikkelissa käytämme Pythonia raaputtamiseen, koska se on erittäin helppo asentaa ja käyttää. Siinä on monia sisäänrakennettuja ja kolmansien osapuolten kirjastoja, joita voidaan käyttää tietojen kaapimiseen ja järjestämiseen. Käytämme kahta Python-kirjastoa "urllib" verkkosivun noutamiseen ja "BeautifulSoup" jäsentääksesi verkkosivun ohjelmointitoimintojen käyttämiseksi.
Kuinka verkon kaavinta toimii?
Lähetämme pyynnön verkkosivulle, josta haluat kaavata tiedot. Verkkosivusto vastaa pyyntöön sivun HTML-sisällöllä. Sitten voimme jäsentää tämän verkkosivun BeautifulSoupille jatkokäsittelyä varten. Verkkosivun noutamiseen käytämme ”urllib” -kirjastoa Pythonissa.
Urllib lataa verkkosivun sisällön HTML-muodossa. Emme voi käyttää merkkijono-operaatioita tälle HTML-verkkosivulle sisällön purkamiseen ja jatkokäsittelyyn. Käytämme Python-kirjastoa “BeautifulSoup”, joka jäsentää sisällön ja poimi mielenkiintoiset tiedot.
Kaavata artikkeleita Linuxhintista.com
Nyt, kun meillä on käsitys siitä, kuinka verkkokaavinta toimii, teemme jonkin verran käytäntöä. Yritämme kaavata artikkelien otsikot ja linkit Linuxhintista.com. Joten avaa https: // linuxhint.fi / selaimessasi.
Paina nyt CRTL + U nähdäksesi verkkosivun HTML-lähdekoodin.
Kopioi lähdekoodi ja siirry osoitteeseen https: // htmlformatter.com / koodin tarkentamiseksi. Koodin tarkentamisen jälkeen koodi on helppo tarkastaa ja löytää mielenkiintoista tietoa.
Kopioi nyt muotoiltu koodi uudelleen ja liitä se suosikkitekstieditoriisi, kuten atomiin, ylevään tekstiin jne. Nyt raaputamme mielenkiintoiset tiedot Pythonilla. Kirjoita seuraava
// Asenna kaunis keittokirjasto, urllib tuleeesiasennettuna Pythoniin
ubuntu @ ubuntu: ~ $ sudo pip3 asenna bs4
ubuntu @ ubuntu: ~ $ python3
Python 3.7.3 (oletus, 7. lokakuuta 2019, 12:56:13)
[GCC 8.3.0] Linuxissa
Kirjoita "help", "copyright", "credits" tai "license" saadaksesi lisätietoja.
// Tuo urllib>>> tuo urllib.pyyntö
// Tuo BeautifulSoup
>>> bs4: stä tuo BeautifulSoup
// Kirjoita haettava URL-osoite
>>> my_url = 'https: // linuxhint.fi / '
// Pyydä URL-verkkosivua käyttämällä urlopen-komentoa
>>> asiakas = urllib.pyyntö.urlopen (my_url)
// Tallenna HTML-verkkosivu muuttujaan "html_page"
>>> html_page = asiakas.lukea()
// Sulje URL-yhteys verkkosivun noutamisen jälkeen
>>> asiakas.kiinni()
// jäsennä HTML-verkkosivusto BeautifulSoupiksi kaavinta varten
>>> page_soup = BeautifulSoup (html_page, "html.jäsennin ")
Katsotaan nyt HTML-lähdekoodia, jonka olemme juuri kopioineet ja liittäneet löytääksemme kiinnostavia asioita.
Voit nähdä, että ensimmäinen Linuxhintissa lueteltu artikkeli.com on nimeltään "74 Bash Operators Esimerkkejä", etsi tämä lähdekoodista. Se on suljettu otsikkotagien väliin, ja sen koodi on
title = "74 esimerkkiä Bash-operaattoreista"> 74 Bash-operaattoria
Esimerkkejä
Sama koodi toistuu uudestaan vain artikkelien otsikoiden ja linkkien muuttuessa. Seuraavassa artikkelissa on seuraava HTML-koodi
title = "Kuinka määrittää lakan välimuisti Ubuntu 18: een.04 ">
Varnish-välimuistin määrittäminen Ubuntu 18: een.04
Voit nähdä, että kaikki artikkelit, mukaan lukien nämä kaksi, on liitetty samaan
”-Tunniste ja käytä samaa luokkaa” entry-title ”. Voimme käyttää BeautifulSoup-kirjaston “findAll” -toimintoa etsiäksesi ja luetteloiden kaikki ””Jolla on luokka” entry-title ”. Kirjoita seuraava Python-konsoliin // Tämä komento löytää kaikki”Tag-elementit, joiden luokan nimi on
"Merkintä-otsikko". Lähtö tallennetaan taulukkoon.
>>> artikkelit = sivu_ryhmä.findAll ("h2" ,
"class": "entry-title")
// Linuxhintin etusivulta löytyvien artikkelien määrä.com
>>> len (artikkelit)
102
// Ensimmäinen purettu “”Tag-elementti, joka sisältää artikkelin nimen ja linkin
>>> artikkelit [0]
title = "74 esimerkkiä Bash-operaattoreista">
74 Esimerkkejä Bash-operaattoreista
// Toinen uutettu “”Tag-elementti, joka sisältää artikkelin nimen ja linkin
>>> artikkelit [1]
title = "Lakan välimuistin määrittäminen Ubuntu 18: een.04 ">
Varnish-välimuistin määrittäminen Ubuntu 18: een.04
// Näytetään vain teksti HTML-tunnisteissa tekstitoiminnon avulla
>>> artikkelit [1].teksti
'Varnish-välimuistin määrittäminen Ubuntu 18: een.04 '
”Tag-elementit, joiden luokan nimi on
"Merkintä-otsikko". Lähtö tallennetaan taulukkoon.
>>> artikkelit = sivu_ryhmä.findAll ("h2" ,
"class": "entry-title")
// Linuxhintin etusivulta löytyvien artikkelien määrä.com
>>> len (artikkelit)
102
// Ensimmäinen purettu “”Tag-elementti, joka sisältää artikkelin nimen ja linkin
>>> artikkelit [0]
title = "74 esimerkkiä Bash-operaattoreista">
74 Esimerkkejä Bash-operaattoreista
// Toinen uutettu “”Tag-elementti, joka sisältää artikkelin nimen ja linkin
>>> artikkelit [1]
title = "Lakan välimuistin määrittäminen Ubuntu 18: een.04 ">
Varnish-välimuistin määrittäminen Ubuntu 18: een.04
// Näytetään vain teksti HTML-tunnisteissa tekstitoiminnon avulla
>>> artikkelit [1].teksti
'Varnish-välimuistin määrittäminen Ubuntu 18: een.04 '
>>> artikkelit [0]
title = "74 esimerkkiä Bash-operaattoreista">
74 Esimerkkejä Bash-operaattoreista
// Toinen uutettu “
”Tag-elementti, joka sisältää artikkelin nimen ja linkin
>>> artikkelit [1]
title = "Lakan välimuistin määrittäminen Ubuntu 18: een.04 ">
Varnish-välimuistin määrittäminen Ubuntu 18: een.04
// Näytetään vain teksti HTML-tunnisteissa tekstitoiminnon avulla
>>> artikkelit [1].teksti
'Varnish-välimuistin määrittäminen Ubuntu 18: een.04 '
title = "Lakan välimuistin määrittäminen Ubuntu 18: een.04 ">
Varnish-välimuistin määrittäminen Ubuntu 18: een.04
Nyt kun meillä on luettelo kaikista 102 HTML: stä “
”Tag-elementit, jotka sisältävät artikkelin linkin ja artikkelin otsikon. Voimme purkaa sekä artikkeleiden linkit että otsikot. Linkkien purkaminen”-Tunnisteita, voimme käyttää seuraavaa koodia // Seuraava koodi purkaa linkin ensin tag-elementti
>>> linkki artikkeleihin [0].find_all ('a', href = True):
… Tulosta (linkki ['href'])
…
https: // linuxhint.fi / bash_operator_examples /
Nyt voimme kirjoittaa for for -silmukan, joka toistaa jokaisen “
”Tag-elementti” artikkelit ”-luettelossa ja pura artikkelin linkki ja otsikko. >>> i alueella (0,10):
… Tulosta (artikkelit [i].teksti)
… Linkki artikkeleihin [i].find_all ('a', href = True):
… Tulosta (linkki ['href'] + "\ n")
…
74 Esimerkkejä Bash-operaattoreista
https: // linuxhint.fi / bash_operator_examples /
Varnish-välimuistin määrittäminen Ubuntu 18: een.04
https: // linuxhint.fi / varnish_cache_ubuntu_1804 /
PineTime: Linux-ystävällinen älykello
https: // linuxhint.fi / pinetime_linux_smartwatch /
10 parasta halpaa Linux-kannettavaa, jotka ovat edullisia
https: // linuxhint.fi / best_cheap_linux_laptops /
HD Remastered -pelit Linuxille, joilla ei ole koskaan ollut Linux-julkaisua ..
https: // linuxhint.fi / hd_remastered_games_linux /
60 FPS-näytön tallennussovellusta Linuxille
https: // linuxhint.fi / 60_fps_screen_recording_apps_linux /
74 Esimerkkejä Bash-operaattoreista
https: // linuxhint.fi / bash_operator_examples /
… Leikata…
Vastaavasti tallennat tulokset JSON- tai CSV-tiedostoon.
Johtopäätös
Päivittäiset tehtävänne eivät ole vain tiedostojen hallinta tai järjestelmän komentojen suorittaminen. Voit myös automatisoida verkkoon liittyviä tehtäviä, kuten tiedostojen lataamisen automaation tai tietojen purkamisen, kaapimalla verkkoa Pythonissa. Tämä artikkeli rajoittui vain yksinkertaiseen tietojen poimintaan, mutta voit tehdä valtavan tehtävien automatisoinnin käyttämällä "urllib" ja "BeautifulSoup".
>>> linkki artikkeleihin [0].find_all ('a', href = True):
… Tulosta (linkki ['href'])
…
https: // linuxhint.fi / bash_operator_examples /
… Tulosta (artikkelit [i].teksti)
… Linkki artikkeleihin [i].find_all ('a', href = True):
… Tulosta (linkki ['href'] + "\ n")
…
74 Esimerkkejä Bash-operaattoreista
https: // linuxhint.fi / bash_operator_examples /
Varnish-välimuistin määrittäminen Ubuntu 18: een.04
https: // linuxhint.fi / varnish_cache_ubuntu_1804 /
PineTime: Linux-ystävällinen älykello
https: // linuxhint.fi / pinetime_linux_smartwatch /
10 parasta halpaa Linux-kannettavaa, jotka ovat edullisia
https: // linuxhint.fi / best_cheap_linux_laptops /
HD Remastered -pelit Linuxille, joilla ei ole koskaan ollut Linux-julkaisua ..
https: // linuxhint.fi / hd_remastered_games_linux /
60 FPS-näytön tallennussovellusta Linuxille
https: // linuxhint.fi / 60_fps_screen_recording_apps_linux /
74 Esimerkkejä Bash-operaattoreista
https: // linuxhint.fi / bash_operator_examples /
… Leikata…