1. Produkter
  2.   HTML
  3.   Python
  4.   Beautiful Soup
 
  

Åpen kildekode Python-bibliotek for å parse HTML/XML og ekstrahere data

Beautiful Soup er et ledende åpent kildekode Python-parsingsbibliotek som parser rotete HTML/XML, ekstraherer tekst/lenker, navigerer i treet og driver moderne webskrapingsarbeidsflyter.

Hva er Beautiful Soup?

Web scraping har blitt en essensiell ferdighet for datasientister, utviklere og forskere som trenger å hente ut verdifull informasjon fra nettsteder. Beautiful Soup er en av de mest populære og brukervennlige Python-bibliotekene for parsing av HTML- og XML-dokumenter. Siden opprettelsen i 2004 har dette kraftige verktøyet spart programmerere utallige timer på webscraping-prosjekter. Bibliotekets intuitive API, utmerkede dokumentasjon og aktive fellesskapsstøtte sikrer at både nybegynnere og erfarne utviklere kan hente ut nettdata effektivt.

Beautiful Soup er et Python-bibliotek spesielt designet for å hente ut data fra HTML- og XML-filer. Det er et kraftig Python-bibliotek som har spart programmerere timer eller dager med arbeid på webskrapingsprosjekter siden 2004. Med bare noen få linjer kode kan du utføre komplekse spørringer som enkelhet og brukervennlighet, finne alle lenkene, hente ut tekstinnhold, automatisk tegnkodingkonvertering, parserfleksibilitet, robust feilhåndtering, søke etter og hente ut lenker fra websider og mye mer.

Beautiful Soup-biblioteket gjør den ofte frustrerende oppgaven med å hente ut data fra HTML- og XML-dokumenter til en enkel Pythonisk prosess, ved å konvertere dårlig strukturet nettinnhold til pent organiserte parse-trær som du kan navigere i og søke i med enkle metoder. Det som tradisjonelt ville tatt timer med manuell koding, kan oppnås på minutter med Beautiful Soup. Det forblir bransjestandarden for Python-utviklere som går inn i verden av webskraping. Dets enkelhet, kombinert med kraften til ulike parsere, gjør det til et uslåelig valg for å hente ut data fra statiske nettsteder.

Previous Next

Kom i gang med Beautiful Soup

Den anbefalte og enkleste måten å installere Beautiful Soup på er å bruke pip. Vennligst bruk følgende kommando for en smidig installasjon.

Installer Beautiful Soup-biblioteket via pip

pip install beautifulsoup4 

Du kan også installere den manuelt; last ned de nyeste utgivelsesfilene direkte fra Beautiful Soup nettsiden.

Arbeid med flere parsere

Beautiful Soup-biblioteket gjør ikke all parsing selv – i stedet ligger det på toppen av modne parsere som Pythons innebygde html.parser, den raske lxml-parseren og den nettleserliknende html5lib. Avhengig av behov kan du prioritere hastighet eller standardoverholdelse. Denne arkitekturen gir deg fleksibilitet til å velge parseren som passer best for dine behov, bytte parsinghastighet mot fleksibilitet, prøve ulike parse‑strategier uten å endre Beautiful Soup‑koden din, osv. Følgende enkle kode viser hvordan utviklere kan bruke forskjellige parsere med Beautiful Soup.

Hvordan bruke flere parsere for å parse HTML-dokumenter i Python-apper?

# Using different parsers with Beautiful Soup
html_doc = "

Eksempelinnhold

" # Using lxml parser (fast) soup_lxml = BeautifulSoup(html_doc, 'lxml') # Using html5lib parser (slower but more lenient) soup_html5lib = BeautifulSoup(html_doc, 'html5lib') # Using Python's built-in parser soup_builtin = BeautifulSoup(html_doc, 'html.parser')

Uttrekning av lenker fra nettsider

Å skrape lenker er en vanlig webskrapingsoppgave, spesielt nyttig for å bygge nettlesere. Det åpne kildekodebiblioteket Beautiful Soup har inkludert støtte for å laste inn websider og trekke ut lenker fra dem i Python‑applikasjoner. Det følgende enkle kodeeksemplet demonstrerer henting av en levende nettside ved hjelp av requests‑biblioteket, og deretter trekke ut alle anker‑tagger i Python‑applikasjoner.

Hvordan hente ut lenker fra websider ved hjelp av Python ?

from bs4 import BeautifulSoup
import requests

# Fetch a real webpage
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# Extract all links
links = soup.find_all('a')

print(f"Found {len(links)} links:")
for link in links:
    href = link.get('href')
    text = link.get_text().strip()
    print(f"Text: {text} | URL: {href}")

# Filter links by criteria
external_links = []
for link in soup.find_all('a'):
    href = link.get('href')
    if href and href.startswith('http'):
        external_links.append(href)

print(f"\nFound {len(external_links)} external links")

Søke etter spesifikke HTML-elementer

En av Beautiful Soups største styrker er hvor naturlig den lar deg søke i HTML, nesten som å lese vanlig engelsk. I stedet for å håndtere komplekse DOM‑APIer, beskriver du hva du vil ha, så finner Beautiful Soup det for deg. Anta at du vil finne alle lenkene på en side. Du kan bruke find_all‑metoden som vist i følgende kodeeksempel. Metoden returnerer en liste over alle lenketagger. Vi itererer deretter gjennom dem for å trekke ut URL‑en og teksten for å få det synlige lenkenavnet ved hjelp av Python‑API.

Hvordan søke etter og hente ut spesifikt HTML-element fra en nettside via Python API?

# Extract all anchor tags
links = soup.find_all('a')

for link in links:
    href = link.get('href')
    text = link.text.strip()
    print(f"Text: {text} | URL: {href}")

Automatisk håndtering av tegnkoding

En av Beautiful Soups mest praktiske funksjoner er dens automatiske tegnkodingkonvertering. Biblioteket konverterer automatisk innkommende dokumenter til Unicode og utgående dokumenter til UTF-8, og eliminerer dermed en av de mest vanlige hodepiner i webskraping. Vennligst husk at du bare trenger å tenke på tegnkodinger når dokumentet ikke spesifiserer en koding, da Beautiful Soup ikke kan oppdage koding automatisk. I disse sjeldne tilfellene spesifiserer du ganske enkelt den opprinnelige koding manuelt.

 Norsk