En nybegynnerguide til skraping av nettet med pyton og vakker suppe

En nybegynnerguide til skraping av nettet med pyton og vakker suppe

World Wide Web er den altomfattende og den endelige kilden til alle dataene det er. Den raske utviklingen som internett har sett de siste tre tiårene har vært enestående. Som et resultat blir nettet montert med hundrevis av terabyte med data hver dag som går.

Alle disse dataene har en viss verdi for en viss noen. For eksempel har nettleserhistorikken din betydning for apper for sosiale medier, da de bruker den til å tilpasse annonsene de viser deg. Og det er mye konkurranse om disse dataene også; Noen få MB -er mer av noen data kan gi bedrifter en betydelig fordel over konkurransen.

Data mining med python

For å hjelpe de av dere som er nye i skraping av data, har vi utarbeidet denne guiden der vi viser hvordan du skal skrape data fra nettet ved hjelp av Python og Beautiful Soup Library.

Vi antar at du allerede har mellomliggende fortrolighet med Python og HTML, ettersom du vil jobbe med begge disse etter instruksjonene i denne guiden.

Vær forsiktig med hvilke nettsteder du prøver dine nyvunne data mining ferdigheter på, ettersom mange nettsteder vurderer dette påtrengende og vet at det kan være konsekvenser.

Installere og forberede bibliotekene

Nå skal vi bruke to biblioteker som vi skal bruke: Pythons forespørselsbibliotek for å laste innhold av websider og det vakre suppebiblioteket for den faktiske skrapingen av prosessen. Det er alternativer til Beautifules, husk deg, og hvis du er kjent med noe av følgende, kan du gjerne bruke disse i stedet: skurret, mekanisere, selen, portia, kimono og parsehub.

Forespørselsbiblioteket kan lastes ned og installeres med PIP -kommandoen som under:

# Pip3 installer forespørsler

Forespørselsbiblioteket skal installeres på enheten din. På samme måte kan du laste ned BeautifeSoup også:

# Pip3 installer BeautifulSoup4

Med det er bibliotekene våre klare for litt handling.

Som nevnt ovenfor, har ikke Request Library mye bruk enn å hente innholdet på websider. The BeautifulSoup Library and Requests Libraries har et sted i hvert skript du skal skrive, og de må importeres før hver som følger:

$ importforespørsler
$ fra BS4 importerer BeautifulSoup som BS

Dette legger til det forespurte nøkkelordet til navneområdet, og signaliserer til Python nøkkelordets betydning når bruken blir bedt om det. Det samme skjer med BS -nøkkelordet, selv om vi her har fordelen av å tilordne et enklere nøkkelord for BeautifulSoup.

webside = forespørsler.Get (URL)

Koden over henter nettsiden til websiden og oppretter en direkte streng ut av den, og lagrer den i en variabel.

$ webContent = webside.innhold

Kommandoen over kopierer nettsidenes innhold og tildeler dem til variabelt nettinnhold.

Med det er vi ferdige med forespørselsbiblioteket. Alt som er igjen å gjøre er å endre alternativet for beordring til Beautifulesuppealternativer.

$ htmlContent = BS (WebContent, “HTML.analyser “)

Dette analyserer forespørselsobjektet og gjør det til lesbare HTML -objekter.

Med alt alt i tas av, kan vi gå videre til den faktiske skrapende biten.

Nettskraping med Python og Beautiful

La oss gå videre og se hvordan vi kan skrape etter data HTML -objekter med Beautifules.

For å illustrere et eksempel, mens vi forklarer ting, vil vi jobbe med dette HTML -utdraget:

Vi kan få tilgang til innholdet i dette utdraget med Beautifulesoup og bruke det på HTML -innholdsvariabelen som under:


Koden over søker etter eventuelle koder som er navngitt, og viser den til brukeren. Hvis den finner mer enn en tagger, viser den dem en om gangen:

Teknologi

For å lagre taggene som er navngitt på en liste, vil vi utstede den endelige koden som under:

Utgangen skal returnere slik:

For å tilkalle en av taggene, indekser listen og ta den du vil ha.

La oss nå se hvordan du plukker ut tagger som holder i perspektiv deres egenskaper. For å skille A, trenger vi taggene med attributtet “Tech_head”. Skriv inn følgende kode:


for div i suppe.find_all ('div', attrs = 'class' = 'tech_head'):

Dette henter taggen.

Du vil få:

Teknologi

Alt uten tagger.

Til slutt vil vi dekke hvordan du plukker ut attributtets verdi i en tag. Koden skal ha denne taggen:

For å betjene verdien som er tilknyttet SRC -attributtet, vil du bruke følgende:

htmlcontent.finn (“img”) [“src”]

Og utgangen vil vise seg som:

"Xyzlady.JPG "

Å gutt, det er sikkert mye arbeid!

Hvis du føler at din kjennskap til Python eller HTML er utilstrekkelig, eller hvis du bare er overveldet med skraping av nettet, ikke bekymre deg.

Hvis du er en virksomhet som trenger å skaffe en bestemt type data regelmessig, men ikke kan gjøre nettskrapingen selv, er det måter rundt dette problemet. Men vet at det kommer til å koste deg litt penger. Du kan finne noen til å skrape 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 -anropene 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 dataene sine i det hele tatt.

Siste tanker

Før vi pakker opp, la meg fortelle deg høyt hvis det ikke allerede har vært selvinnlysende; Find (), Find_all () -kommandoer er dine beste venner når du er ute og skraper med BeautifulSoup. Selv om det er mye mer å dekke for å mestre data skraping med Python, bør denne guiden være nok for de av dere som bare starter.