Verden nettet er den altomfattende og ultimate kilden til alle dataene som finnes. Den raske utviklingen internett har sett de siste tre tiårene har vært uten sidestykke. Som et resultat blir nettet montert med hundrevis av terabyte data hver dag som går.
Alle disse dataene har en viss verdi for en bestemt person. Nettlesingsloggen din har for eksempel betydning for apper på sosiale medier, ettersom de bruker den til å tilpasse annonsene de viser deg. Og det er også mye konkurranse om disse dataene; noen få MB mer av noen data kan gi bedriftene en betydelig fordel i forhold til konkurrentene.
Datautvinning med Python
For å hjelpe de av dere som er nye med dataskraping, har vi utarbeidet denne guiden der vi viser hvordan du kan skrape data fra nettet ved hjelp av Python og Beautiful soup Library.
Vi forutsetter at du allerede har mellomliggende kjennskap til Python og HTML, ettersom du vil jobbe med begge disse ved å følge instruksjonene i denne veiledningen.
Vær forsiktig med hvilke nettsteder du prøver dine nyvunne data mining ferdigheter på, ettersom mange nettsteder anser dette som påtrengende og vet at det kan være konsekvenser.
Installere og klargjøre bibliotekene
Nå skal vi bruke to biblioteker som vi skal bruke: pythons forespørselsbibliotek for å laste innhold fra nettsider og det vakre suppebiblioteket for selve skrapingen av prosessen. Det er alternativer til BeautifulSoup, husk, og hvis du er kjent med noe av det følgende, er du velkommen til å bruke disse i stedet: Scrappy, Mechanize, Selen, Portia, kimono og ParseHub.
Forespørselsbiblioteket kan lastes ned og installeres med pip-kommandoen som under:
# pip3 installasjonsforespørsler
Forespørselsbiblioteket skal installeres på enheten din. På samme måte laster du ned BeautifulSoup også:
# pip3 installer beautifulsoup4
Med det er bibliotekene våre klare for handling.
Som nevnt ovenfor har forespørselsbiblioteket ikke mye annet bruk enn å hente innholdet fra nettsider. BeautifulSoup-biblioteket og forespørselsbiblioteker har en plass i hvert skript du skal skrive, og de må importeres før hvert som følger:
$ importforespørsler$ fra bs4 importerer BeautifulSoup som bs
Dette legger til det etterspurte nøkkelordet i navneområdet, og signaliserer til Python nøkkelordets betydning når det blir bedt om bruk. Det samme skjer med bs-nøkkelordet, men her har vi fordelen av å tilordne et enklere nøkkelord for BeautifulSoup.
webside = forespørsler.få (URL)Koden ovenfor henter nettadressen og lager en direkte streng ut av den, og lagrer den i en variabel.
$ webinnhold = nettside.innholdKommandoen over kopierer nettsidens innhold og tilordner dem til det variable nettinnholdet.
Med det er vi ferdige med forespørselsbiblioteket. Alt som er igjen å gjøre er å endre forespørselsbibliotekalternativene til BeautifulSoup-alternativer.
$ htmlcontent = bs (webinnhold, “html.parser “)
Dette analyserer forespørselsobjektet og gjør det til lesbare HTML-objekter.
Med alt tatt vare på, kan vi gå videre til selve skrapebiten.
Nettskraping med Python og BeautifulSoup
La oss gå videre og se hvordan vi kan skrape data HTML-objekter med BeautifulSoup.
For å illustrere et eksempel, mens vi forklarer ting, jobber vi med denne html-kodebiten:
Vi kan få tilgang til innholdet i denne kodebiten med BeautifulSoup og bruke den på HTML-innholdsvariabelen som under:
Koden over søker etter tagger
For å lagre taggene som heter samtidig
til en liste, vil vi utstede den endelige koden som under:
Utgangen skal returnere slik:
Å tilkalle en av de
La oss nå se hvordan du velger ut
tagger som holder perspektivene deres. For å skille a , vi trenger
for div i suppe.find_all ('div', attrs = 'class' = 'Tech_head'):
Dette henter
stikkord.Du får:
Teknologi
Alt uten tagger.
Til slutt vil vi dekke hvordan du plukker ut attributtets verdi i en tag. Koden skal ha denne taggen:
For å utføre verdien som er knyttet til src-attributtet, bruker du følgende:
htmlinnhold.finn (“img“) [“src“]Og produksjonen skulle vise seg som:
"images_4 / a-nybegynner-guide-til-nett-skraping-med-python-og-vakker-suppe.jpg "
Å gutt, det er sikkert mye arbeid!
Hvis du føler at du ikke kjenner til python eller HTML er utilstrekkelig, eller hvis du bare er overveldet med skraping på nettet, ikke bekymre deg.
Hvis du er en bedrift som trenger å skaffe seg en bestemt type data regelmessig, men ikke kan gjøre nettskraping selv, er det måter å løse dette problemet på. Men vet at det kommer til å koste deg litt penger. Du kan finne noen som gjør skrapingen for deg, eller du kan få premium datatjenesten fra nettsteder som Google og Twitter for å dele dataene med deg. Disse deler deler av dataene sine ved å bruke API-er, men disse API-samtalene er begrenset per dag. Bortsett fra det, kan nettsteder som disse være veldig beskyttende for dataene sine. Vanligvis deler mange slike nettsteder ikke noe av deres data i det hele tatt.
Siste tanker
Før jeg avslutter, la meg fortelle deg høyt om det ikke allerede har vært selvsagt; kommandoene find (), find_all () er de beste vennene dine når du er ute og skraper med BeautifulSoup. Selv om det er mye mer å dekke for å mestre dataskraping med Python, bør denne veiledningen være nok for de av dere som bare har begynt.