Hvordan installere vakker suppe og bruke den til nettskrapingsprosjekter?

I dagens datadrevne verden er den tradisjonelle metoden for manuell datainnsamling utdatert. En datamaskin med internettforbindelse på hvert skrivebord gjorde nettet til en enorm datakilde. Den mer effektive og tidsbesparende moderne metoden for datainnsamling er således nettskraping. Og når det kommer til nettskraping, har Python et verktøy som heter Beautiful Soup. I dette innlegget vil jeg lede deg gjennom installasjonstrinnene til Beautiful Soup for å komme i gang med nettskraping.

Før du installerer og jobber med Beautiful Soup, la oss finne ut hvorfor du bør gå for det.

Hva er en vakker suppe?

La oss late som om du undersøker «COVIDs innvirkning på folks helse» og har funnet noen få nettsider som inneholder relevante data. Men hva om de ikke tilbyr deg et enkeltklikks nedlastingsalternativ for å låne dataene deres? Her kommer den vakre suppen i spill.

Beautiful Soup er blant indeksen til Python-biblioteker for å trekke ut dataene fra målrettede nettsteder. Det er mer komfortabelt å hente data fra HTML- eller XML-sider.

Leonard Richardson brakte ideen om Beautiful Soup for å skrape nettet frem i lyset i 2004. Men hans bidrag til prosjektet fortsetter med dette i dag. Han oppdaterer stolt hver Beautiful Soups nye utgivelse på Twitter-kontoen sin.

Selv om Beautiful Soup for web-skraping ble utviklet med Python 3.8, fungerer den perfekt med både Python 3 og Python 2.4 også.

Ofte bruker nettsteder captcha-beskyttelse for å redde dataene sine fra AI-verktøy. I dette tilfellet kan noen få endringer i «user-agent»-overskriften i Beautiful Soup eller bruk av Captcha-løsnings-API-er etterligne en pålitelig nettleser og lure deteksjonsverktøyet.

Men hvis du ikke har tid til å utforske Beautiful Soup eller vil at skrapingen skal gjøres effektivt og enkelt, bør du ikke gå glipp av å sjekke ut dette web-skraping-APIet, hvor du bare kan oppgi en URL og få dataene inn dine hender.

  Topp 10 kule spillestoler for profesjonelle spillere

Hvis du allerede er en programmerer, vil det ikke være skremmende å bruke Beautiful Soup for skraping på grunn av dens enkle syntaks i å navigere på nettsider og trekke ut ønskede data basert på betinget parsing. Samtidig er den også nybegynnervennlig.

Selv om Beautiful Soup ikke er for avansert skraping, fungerer det best å skrape dataene fra filer skrevet på markup-språk.

Klar og detaljert dokumentasjon er et annet brownie-punkt som Beautiful Soup pakket.

La oss finne en enkel måte å få vakker suppe inn i maskinen din.

Hvordan installere vakker suppe for nettskraping?

Pip – En uanstrengt Python-pakkebehandler utviklet i 2008 er nå et standardverktøy blant utviklere for å installere alle Python-biblioteker eller avhengigheter.

Pip leveres som standard med installasjon av nyere Python-versjoner. Derfor, hvis du har noen nyere Python-versjoner installert på systemet ditt, er du i gang.

Åpne ledeteksten og skriv inn følgende pip-kommando for å installere den vakre suppen umiddelbart.

pip install beautifulsoup4

Du vil se noe som ligner på følgende skjermbilde på skjermen.

Sørg for at du har oppdatert PIP-installasjonsprogrammet til den nyeste versjonen for å unngå vanlige feil.

Kommandoen for å oppdatere pip-installasjonsprogrammet til den nyeste versjonen er:

pip install --upgrade pip

Vi har dekket halve bakken med hell i dette innlegget.

Nå har du Beautiful Soup installert på maskinen din, så la oss dykke ned i hvordan du bruker den til nettskraping.

Hvordan importere og jobbe med vakker suppe for nettskraping?

Skriv inn følgende kommando i python-IDE-en din for å importere vakker suppe til gjeldende python-skript.

from bs4 import BeautifulSoup

Nå er den vakre suppen i Python-filen din for å bruke til skraping.

La oss se på et kodeeksempel for å lære hvordan du trekker ut de ønskede dataene med vakker suppe.

Vi kan fortelle vakre Soup å se etter spesifikke HTML-tagger på kildenettstedet og skrape dataene som finnes i disse kodene.

I dette stykket vil jeg bruke marketwatch.com, som oppdaterer aksjekursene til ulike selskaper i sanntid. La oss hente ut noen data fra denne nettsiden for å gjøre deg kjent med Beautiful Soup-biblioteket.

  10 beste dataadministrasjonsverktøy for mellomstore til store bedrifter

Importer «requests»-pakke som lar oss motta og svare på HTTP-forespørsler og «urllib» for å laste nettsiden fra URL-en.

from urllib.request import urlopen
import requests

Lagre nettsidekoblingen i en variabel slik at du enkelt kan få tilgang til den senere.

url="https://www.marketwatch.com/investing/stock/amzn"

Det neste ville være å bruke «urlopen»-metoden fra «urllib»-biblioteket for å lagre HTML-siden i en variabel. Send URL-en til «urlopen»-funksjonen og lagre resultatet i en variabel.

page = urlopen(url)

Lag et vakkert suppeobjekt og analyser ønsket nettside ved å bruke «html.parser».

soup_obj = BeautifulSoup(page, 'html.parser')

Nå er hele HTML-skriptet til den målrettede nettsiden lagret i variabelen «soup_obj».

Før du fortsetter, la oss se på den målrettede sidens kildekode for å vite mer om HTML-skriptet og -taggene.

Høyreklikk hvor som helst på nettsiden med musen. Da finner du et inspeksjonsalternativ, som vist nedenfor.

Klikk på inspiser for å se kildekoden.

I kildekoden ovenfor kan du finne tagger, klasser og mer spesifikk informasjon om hvert element som er synlig på nettstedets grensesnitt.

«Finn»-metoden i vakre Soup lar oss søke etter de forespurte HTML-taggene og hente dataene. For å gjøre dette gir vi klassenavnet og -taggene til metoden som trekker ut spesifikke data.

For eksempel «Amazon.com Inc.» vist på nettsiden har klassenavnet: «company__name» merket under «h1». Vi kan legge inn denne informasjonen i «finn»-metoden for å trekke ut den relevante HTML-kodebiten til en variabel.

name = soup_obj.find('h1', attrs={'class': 'company__name'})

La oss skrive ut HTML-skriptet som er lagret i variabelen «navn» og den nødvendige teksten på skjermen.

print(name)

print(name.text)

Du kan se de utpakkede dataene skrevet ut på skjermen.

Web Skrap IMDb-nettstedet

Mange av oss ser etter filmvurderinger på IMBbs nettsted før vi ser en film. Denne demonstrasjonen vil gi deg en liste over topprangerte filmer og hjelper deg å venne deg til den vakre suppen for nettskraping.

Trinn 1: Importer den vakre suppen og forespørsbibliotekene.

from bs4 import BeautifulSoup
import requests

Trinn 2: La oss tilordne URL-en vi ønsker å skrape til en variabel kalt «url» for enkel tilgang i koden.

  Hvordan bygge en smart markedsføringsstrategi med Semrush .Trends

«Requests»-pakken brukes til å hente HTML-siden fra URL-en.

url = requests.get('https://www.imdb.com/search/title/?count=100&groups=top_1000&sort=user_rating')

Trinn 3: I den følgende kodebiten vil vi analysere HTML-siden til gjeldende URL for å lage et objekt med vakker suppe.

soup_obj = BeautifulSoup(url.text, 'html.parser')

Variabelen «soup_obj» inneholder nå hele HTML-skriptet til den ønskede nettsiden, som i bildet nedenfor.

La oss inspisere kildekoden til nettsiden for å finne HTML-skriptet til dataene vi ønsker å skrape.

Hold markøren over nettsideelementet du vil trekke ut. Deretter høyreklikker du på den og går med inspeksjonsalternativet for å se kildekoden til det spesifikke elementet. Følgende bilder vil veilede deg bedre.

Klassens listeliste inneholder alle de topprangerte filmrelaterte dataene som underavdelinger i påfølgende div-tagger.

I hvert filmkorts HTML-skript, under klassen «lister-item mode-advanced», har vi en tag «h3» som lagrer filmens navn, rangering og utgivelsesår, som uthevet i bildet nedenfor.

Merk: «Finn»-metoden i vakker suppe søker etter den første taggen som samsvarer med inndatanavnet som er gitt til den. I motsetning til «finn», ser «finn_alt»-metoden etter alle taggene som samsvarer med den gitte inndata.

Trinn 4: Du kan bruke metodene «finn» og «finn_alle» for å lagre HTML-skriptet til hver film navn, rangering og år i en listevariabel.

top_movies = soup_obj.find('div',attrs={'class': 'lister-list'}).find_all('h3')

Trinn 5: Gå gjennom listen over filmer som er lagret i variabelen: «top_movies» og trekk ut navnet, rangeringen og året for hver film i tekstformat fra HTML-skriptet ved å bruke koden nedenfor.

for movie in top_movies:
    movi_name = movie.a.text
    rank = movie.span.text.rstrip('.')
    year = movie.find('span', attrs={'class': 'lister-item-year text-muted unbold'})
    year = year.text.strip('()')
    print(movi_name + " ", rank+ " ", year+ " ")

I utdataskjermbildet kan du se listen over filmer med navn, rangering og utgivelsesår.

Du kan enkelt flytte de utskrevne dataene til et excel-ark med litt python-kode og bruke den til analysen din.

Siste ord

Dette innlegget guider deg til å installere vakker suppe for nettskraping. Også skrapeeksemplene jeg har vist bør hjelpe deg i gang med Beautiful Soup.

Siden du er interessert i hvordan du installerer Beautiful Soup for nettskraping, anbefaler jeg at du sjekker ut denne forståelige guiden for å vite mer om nettskraping ved hjelp av Python.