Web Scraping

Verkon kaapiminen Pythonilla

Verkon kaapiminen Pythonilla
Verkon kaavinta on automatisoitu tapa purkaa ja käsitellä tietoja Internet-verkkosivustoilta erittäin suurena määränä. Internet-verkkosivustojen tietoja ei ole jäsennelty, vaan ne voidaan kerätä ja jäsentää verkkokaavion avulla. Hakukoneissa, kuten Google, Bing, Yahoo, on botteja, jotka raapivat tietoja verkkosivustoilta ja indeksoivat ne hakusivuillaan. Tiedot voidaan purkaa myös sovellusliittymien avulla, mikä on luultavasti yksi parhaista tavoista poimia tietoja verkosta. Kuuluisat verkkosivustot, kuten Facebook, Google, Amazon, tarjoavat käyttäjille hyvin jäsennellyt sovellusliittymät vuorovaikutukseen tietojen kanssa, mutta et näe näitä sovellusliittymiä kaikkialla.

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 tulee
esiasennettuna 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



class = "category-1561"> BASH-ohjelmointi


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



class = "category-1343"> Ubuntu
Lakka


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 '

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".

How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...