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

Öppet källkods-Python-bibliotek för att parsra HTML/XML & extrahera data

Beautiful Soup är ett ledande öppet källkods-Python-parsbibliotek som parsar rörig HTML/XML, extraherar text/länkar, navigerar i trädet och driver moderna webbskrapningsarbetsflöden.

Vad är Beautiful Soup?

Webbskrapning har blivit en viktig färdighet för datavetare, utvecklare och forskare som behöver extrahera värdefull information från webbplatser. Beautiful Soup är ett av de mest populära och användarvänliga Python-biblioteken för att parsra HTML- och XML-dokument. Sedan det skapades 2004 har detta kraftfulla verktyg sparat programmerare otaliga timmar på webbskrapningsprojekt. Bibliotekets intuitiva API, utmärkta dokumentation och aktiva community-stöd säkerställer att både nybörjare och erfarna utvecklare kan extrahera webbdata effektivt.

Beautiful Soup är ett Python-bibliotek som är speciellt utformat för att extrahera data från HTML- och XML-filer. Det är ett kraftfullt Python-bibliotek som sedan 2004 har sparat programmerare timmar eller dagar av arbete på webbskrapningsprojekt. Med bara några rader kod kan du utföra komplexa frågor som enkelhet och användarvänlighet, hitta alla länkar, extrahera textinnehåll, automatisk teckenkodningskonvertering, parserflexibilitet, robust felhantering, söka och extrahera länkar från webbsidor och mycket mer.

Beautiful Soup-biblioteket omvandlar den ofta frustrerande uppgiften att extrahera data från HTML- och XML-dokument till en enkel Pythonisk process, som konverterar dåligt strukturerat webbinnehåll till prydligt organiserade parsningsträd som du kan navigera och söka i med enkla metoder. Vad som traditionellt skulle ta timmar av manuell kodning kan uppnås på minuter med Beautiful Soup. Det förblir branschstandard för Python-utvecklare som ger sig in i webbskrapningens värld. Dess enkelhet, kombinerat med kraften hos olika parsers, gör det till ett oslagbart val för att extrahera data från statiska webbplatser.

Previous Next

Komma igång med Beautiful Soup

Det rekommenderade och enklaste sättet att installera Beautiful Soup är att använda pip. Använd följande kommando för en smidig installation.

Installera Beautiful Soup-biblioteket via pip

pip install beautifulsoup4 

Du kan också installera det manuellt; ladda ner de senaste release-filerna direkt från Beautiful Soup -webbsidan.

Arbeta med flera parserar

Beautiful Soup-biblioteket gör inte all parsning själv — istället ligger det ovanpå mogna parserar som Pythons inbyggda html.parser, den snabba lxml-parsern och den webbläsarliknande html5lib. Beroende på behov kan du prioritera hastighet eller standardefterlevnad. Denna arkitektur ger dig flexibilitet att välja den parser som bäst passar dina behov, byta parsningshastighet mot flexibilitet, prova olika parsningsstrategier utan att ändra din Beautiful Soup-kod, och så vidare. Följande enkla kod visar hur utvecklare kan använda olika parserar med Beautiful Soup.

Hur använder man flera parserar för att parsa HTML-dokument i Python-appar?

# Using different parsers with Beautiful Soup
html_doc = "

Exempel på innehåll

" # 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')

Extrahera länkar från webbsidor

Att skrapa länkar är en vanlig webbskrapningsuppgift, särskilt användbar för att bygga webbspindlar. Det öppna källkodsbiblioteket Beautiful Soup har inkluderat stöd för att ladda webbsidor och extrahera länkar från dem i Python‑applikationer. Följande enkla kodexempel visar hur man hämtar en live‑webbsida med requests‑biblioteket och sedan extraherar alla ankartaggar i Python‑applikationer.

Hur extraherar man länkar från webbsidor med 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öka efter specifika HTML-element

En av Beautiful Soups största styrkor är hur naturligt den låter dig söka i HTML, nästan som att läsa vanlig engelska. Istället för att hantera komplexa DOM‑API:er beskriver du vad du vill ha, så hittar Beautiful Soup det åt dig. Anta att du vill hitta alla länkar på en sida. Du kan använda find_all‑metoden som visas i följande kodexempel. Metoden returnerar en lista med alla länktaggar. Vi itererar sedan igenom dem för att extrahera URL:en och texten för att få det synliga länknamnet med Python‑API.

Hur söker och extraherar man specifika HTML-element från en webbsida 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 hantering av teckenkodning

En av Beautiful Soups mest praktiska funktioner är dess automatiska teckenkodningskonvertering. Biblioteket konverterar automatiskt inkommande dokument till Unicode och utgående dokument till UTF-8, vilket eliminerar ett av de vanligaste huvudvärken vid webbsökning. Kom ihåg att du bara behöver tänka på kodningar när dokumentet inte specificerar en kodning, eftersom Beautiful Soup inte kan upptäcka kodningen automatiskt. I dessa sällsynta fall anger du helt enkelt den ursprungliga kodningen manuellt.

 Svenska