Python

En begyndervejledning til webskrabning med Python og smuk suppe

En begyndervejledning til webskrabning med Python og smuk suppe

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

Kommandoen 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

, og viser det for brugeren. Hvis den finder mere end én tags, viser den dem en ad gangen:

Teknologi

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

tags, indekser listen og tager den ønskede.

Lad os nu se, hvordan man vælger

tags, der holder deres egenskaber i perspektiv. At adskille en
, vi har brug for
tags med attributten "Tech_head". Indtast følgende kode:


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:

dame

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.

SuperTuxKart til Linux
SuperTuxKart er en fantastisk titel designet til at give dig Mario Kart-oplevelsen gratis på dit Linux-system. Det er ret udfordrende og sjovt at spil...
Kæmp om Wesnoth-vejledning
Slaget om Wesnoth er et af de mest populære open source-strategispil, som du kan spille på dette tidspunkt. Ikke kun har dette spil været under udvikl...
0 A.D. Vejledning
Ud af de mange strategispil derude, 0 A.D. formår at skille sig ud som en omfattende titel og et meget dybt, taktisk spil på trods af at det er open s...

Seneste artikler om operativsystemer. Masser af interessante guider og nyttige tip. Føles som din egen i verdenen med moderne teknologi