For eksempel, hvis du vil få regelmessige oppdateringer om favorittproduktene dine for rabatttilbud, eller du vil automatisere prosessen med å laste ned episoder av din favoritt sesong en etter en, og nettstedet har ikke noe API for det, det eneste valget du sitter igjen med er nettskraping.Nettskraping kan være ulovlig på noen nettsteder, avhengig av om et nettsted tillater det eller ikke. Nettsteder bruker “Roboter.txt ”-filen for eksplisitt å definere nettadresser som ikke har lov til å bli skrotet. Du kan sjekke om nettstedet tillater det eller ikke ved å legge til "roboter.txt ”med nettstedets domenenavn. For eksempel https: // www.Google.com/roboter.tekst
I denne artikkelen bruker vi Python til skraping fordi det er veldig enkelt å konfigurere og bruke. Den har mange innebygde og tredjepartsbiblioteker som kan brukes til å skrape og organisere data. Vi bruker to Python -biblioteker “urllib” for å hente nettsiden og “Beautifules” for å analysere websiden for å bruke programmeringsoperasjoner.
Hvordan skraping av nettet fungerer?
Vi sender en forespørsel til websiden, hvor du vil skrape dataene. Nettstedet vil svare på forespørselen med HTML -innhold på siden. Deretter kan vi analysere denne nettsiden til Beautifules for videre behandling. For å hente websiden, bruker vi “Urllib” -biblioteket i Python.
Urllib vil laste ned innholdet i websiden i HTML. Vi kan ikke bruke strengoperasjoner på denne HTML -websiden for innholdsutvinning og videre behandling. Vi bruker et Python -bibliotek “BeautifulSoup” som vil analysere innholdet og trekke ut de interessante dataene.
Skraping av artikler fra Linuxhint.com
Nå som vi har en ide om hvordan nettskraping fungerer, la oss gjøre litt øvelse. Vi prøver å skrape artikkeltitler og lenker fra Linuxhint.com. Så åpen https: // linuxhint.com/ i nettleseren din.
Trykk nå CRTL+U for å se HTML -kildekoden på websiden.
Kopier kildekoden, og gå til https: // htmlformatter.com/ for å forhytte koden. Etter å ha prestert koden, er det enkelt å inspisere koden og finne interessant informasjon.
Nå, kopier igjen den formaterte koden og lim den inn i din favoritt tekstredigerer som atom, sublim tekst osv. Nå skal vi skrape den interessante informasjonen ved hjelp av Python. Skriv inn følgende
// installere vakkert suppebibliotek, urllib kommerSkriv inn "hjelp", "copyright", "studiepoeng" eller "lisens" for mer informasjon.
// Importer urllibLa oss nå se på HTML -kildekoden vi nettopp kopierte og limte inn for å finne ting av vår interesse.
Du kan se at den første artikkelen som er oppført på Linuxhint.com heter “74 Bash Operators Eksempler”, finn dette i kildekoden. Det er vedlagt mellom topptagger, og koden er
tittel = "74 Bash Operators Eksempler"> 74 Bash -operatører
Eksempler
Den samme koden gjentas om og om igjen med endring av bare artikkeltitler og lenker. Neste artikkel har følgende HTML -kode
Du kan se at alle artikler inkludert disse to er vedlagt i samme "
”Merk og bruk den samme klassen“ Entry-Title ”. Vi kan bruke "FindAll" -funksjon i vakkert suppebibliotek for å finne og liste opp alle "
”Å ha klasse“ inngangstittel ”. Skriv inn følgende i Python -konsollen din
// denne kommandoen vil finne alle “”Tagelementer som har kalt klasse
“Inngangstitel”. Utgangen blir lagret i en matrise.
>>> artikler = side_soup.FindAll ("H2" ,
"Class": "entry-title")
// Antall artikler som er funnet på forsiden av Linuxhint.com
>>> Len (artikler)
102
// først hentet ut "
”Tagelement som inneholder artikkelnavn og lenke
>>> artikler [0]
title = "74 Bash Operators Eksempler">
74 BASH Operatører eksempler
”Tagelement som inneholder artikkelnavn og lenke
>>> artikler [1]
Nå som vi har en liste over alle 102 html “
”Tagelementer som inneholder artikkelkobling og artikkeltittel. Vi kan trekke ut begge artiklene lenker og titler. For å hente ut lenker fra "" -merker, kan vi bruke følgende kode
// Følgende kode vil trekke ut lenken fra først tagelement
>>> for lenke i artikler [0].find_all ('a', href = true):
... skriv ut (lenke ['href'])
..
https: // linuxhint.com/bash_operator_examples/
Nå kan vi skrive en for loop som itererer gjennom hver "
”Tagelement i“ Artikler ”-liste og trekke ut artikkelen og tittelen.
>>> for I in Range (0,10):Tilsvarende lagrer du disse resultatene i en JSON- eller CSV -fil.
Konklusjon
Dine daglige oppgaver er ikke bare filadministrasjon eller utførelse av systemkommandoer. Du kan også automatisere nettrelaterte oppgaver som filnedlasting Automasjon eller datautvinning ved å skrape nettet i Python. Denne artikkelen var begrenset til bare enkel datautvinning, men du kan gjøre enorm oppgaveautomatisering ved å bruke "urllib" og "BeautifulSoup".