Internettet er den altomfattende og ultimative kilde til alle de data, der findes. Den hurtige udvikling, som internettet har set i de sidste tre årtier, har været uden fortilfælde. Som et resultat monteres nettet med hundreder af terabyte data hver dag der går.
Alle disse data har en vis værdi for en bestemt person. For eksempel har din browserhistorik betydning for apps på sociale medier, da de bruger den til at personalisere de annoncer, de viser dig. Og der er også meget konkurrence om disse data; et par MB'er mere af nogle data kan give virksomhederne en betydelig fordel i forhold til deres konkurrence.
Data mining med Python
For at hjælpe dem af jer, der er nye med dataskrabning, har vi udarbejdet denne vejledning, hvor vi viser, hvordan man skraber data fra internettet ved hjælp af Python og Beautiful soup Library.
Vi antager, at du allerede har en mellemliggende fortrolighed med Python og HTML, da du arbejder med begge disse ved at følge instruktionerne i denne vejledning.
Vær forsigtig med, hvilke websteder du prøver dine nyfundne data mining færdigheder på, da mange websteder betragter dette som påtrængende og ved, at der kan være konsekvenser.
Installation og forberedelse af bibliotekerne
Nu skal vi bruge to biblioteker, som vi skal bruge: pythons anmodningsbibliotek til indlæsning af indhold fra websider og det smukke suppebibliotek til den faktiske skrabebit af processen. Der er alternativer til BeautifulSoup, husk, og hvis du er fortrolig med et af følgende, er du velkommen til at bruge disse i stedet: Scrappy, Mechanize, Selen, Portia, kimono og ParseHub.
Anmodningsbiblioteket kan downloades og installeres med pip-kommandoen som under:
# pip3 installationsanmodninger
Anmodningsbiblioteket skal installeres på din enhed. Tilsvarende skal du også downloade BeautifulSoup:
# pip3 installer beautifulsoup4
Med det er vores biblioteker klar til handling.
Som nævnt ovenfor har anmodningsbiblioteket ikke meget andet formål end at hente indholdet fra websider. BeautifulSoup-biblioteket og anmodningsbiblioteker har et sted i hvert script, du skal skrive, og de skal importeres før hvert som følger:
$ importanmodninger$ fra bs4 import BeautifulSoup som bs
Dette tilføjer det anmodede nøgleord til navneområdet og signaliserer til Python nøgleordets betydning, når det bliver bedt om, at det bruges. Det samme sker med bs-nøgleordet, men her har vi fordelen ved at tildele et enklere nøgleord til BeautifulSoup.
webside = anmodninger.få (URL)Koden ovenfor henter websidens URL og opretter en direkte streng ud af den og gemmer den i en variabel.
$ webcontent = webside.indholdKommandoen ovenfor kopierer websides indhold og tildeler dem til det variable webindhold.
Med det er vi færdige med anmodningsbiblioteket. Alt der er tilbage at gøre er at ændre anmodningsbiblioteksindstillingerne til BeautifulSoup-indstillinger.
$ htmlcontent = bs (webindhold, “html.parser “)
Dette analyserer anmodningsobjektet og omdanner det til læsbare HTML-objekter.
Med alt taget hånd om, kan vi gå videre til den faktiske skrabebit.
Webskrabning med Python og BeautifulSoup
Lad os gå videre og se, hvordan vi kan skrabe efter data-HTML-objekter med BeautifulSoup.
For at illustrere et eksempel, mens vi forklarer ting, arbejder vi med dette html-uddrag:
Vi kan få adgang til indholdet af dette uddrag med BeautifulSoup og bruge det på HTML-indholdsvariablen som under:
Koden ovenfor søger efter eventuelle navngivne tags
For samtidig at gemme de navngivne tags
til en liste udsteder vi den endelige kode som under:
Outputtet skal returnere sådan:
At tilkalde en af
Lad os nu se, hvordan man vælger
tags, der holder deres egenskaber i perspektiv. At adskille en , vi har brug for
til div i suppe.find_all ('div', attrs = 'class' = 'Tech_head'):
Dette henter
tag.Du får:
Teknologi
Alt uden tags.
Endelig vil vi dække, hvordan man vælger attributens værdi i et tag. Koden skal have dette tag:
For at udføre den værdi, der er knyttet til src-attributten, skal du bruge følgende:
htmlindhold.find (“img“) [“src“]Og output ville vise sig som:
"images_4 / a-begyndere-guide-til-web-skrabning-med-python-og-smuk-suppe.jpg "
Åh dreng, det er bestemt en masse arbejde!
Hvis du føler, at din fortrolighed med python eller HTML er utilstrækkelig, eller hvis du simpelthen er overvældet af skrabning på nettet, skal du ikke bekymre dig.
Hvis du er en virksomhed, der har brug for at erhverve en bestemt type data regelmæssigt, men ikke selv kan foretage web-skrabning, er der måder omkring dette problem. Men ved, at det vil koste dig nogle penge. Du kan finde nogen, der kan skrabe for dig, eller du kan få premium-datatjenesten fra websteder som Google og Twitter til at dele dataene med dig. Disse deler dele af deres data ved hjælp af API'er, men disse API-opkald er begrænsede pr. Dag. Bortset fra det kan websteder som disse være meget beskyttende over for deres data. Typisk deler mange af disse websteder slet ikke nogen af deres data.
Afsluttende tanker
Inden vi afslutter, lad mig fortælle dig højt, hvis det ikke allerede har været indlysende; kommandoerne find (), find_all () er dine bedste venner, når du er ude med at skrabe med BeautifulSoup. Selvom der er meget mere at dække for at mestre dataskrabning med Python, bør denne guide være nok for de af jer, der lige er begyndt.