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

Open source Python-bibliotheek om HTML/XML te parseren & gegevens te extraheren

Beautiful Soup is een toonaangevende open source Python-parsingbibliotheek die rommelige HTML/XML parseert, tekst/links extraheert, door de boom navigeert en moderne webscraping-workflows aandrijft.

Wat is Beautiful Soup?

Webscraping is een essentiële vaardigheid geworden voor datawetenschappers, ontwikkelaars en onderzoekers die waardevolle informatie van websites moeten extraheren. Beautiful Soup staat bekend als een van de meest populaire en gebruiksvriendelijke Python-bibliotheken voor het parseren van HTML- en XML-documenten. Sinds de oprichting in 2004 heeft dit krachtige hulpmiddel programmeurs talloze uren bespaard bij webscraping-projecten. De intuïtieve API van de bibliotheek, uitstekende documentatie en actieve community-ondersteuning zorgen ervoor dat zowel beginners als ervaren ontwikkelaars webgegevens efficiënt kunnen extraheren.

Beautiful Soup is een Python-bibliotheek die specifiek is ontworpen voor het extraheren van gegevens uit HTML- en XML-bestanden. Het is een krachtige Python-bibliotheek die programmeurs sinds 2004 uren of dagen werk bespaart bij webscraping-projecten. Met slechts een paar regels code kun je complexe queries uitvoeren, zoals eenvoud en gebruiksgemak, alle links vinden, tekstinhoud extraheren, automatische tekenencodering conversie, parserflexibiliteit, robuuste foutafhandeling, zoeken en extraheren van links van webpagina's en nog veel meer.

De Beautiful Soup-bibliotheek transformeert de vaak frustrerende taak van het extraheren van gegevens uit HTML- en XML-documenten tot een eenvoudig Pythonisch proces, waarbij slecht gestructureerde webinhoud wordt omgezet in netjes georganiseerde parse-bomen die je met eenvoudige methoden kunt doorlopen en doorzoeken. Wat traditioneel uren handmatig coderen zou kosten, kan met Beautiful Soup in minuten worden voltooid. Het blijft de industriestandaard voor Python-ontwikkelaars die de wereld van webscraping betreden. De eenvoud, gecombineerd met de kracht van verschillende parsers, maakt het een onovertroffen keuze voor het extraheren van gegevens van statische websites.

Previous Next

Aan de slag met Beautiful Soup

De aanbevolen en eenvoudigste manier om Beautiful Soup te installeren is met pip. Gebruik alstublieft het volgende commando voor een soepele installatie.

Installeer de Beautiful Soup-bibliotheek via pip

pip install beautifulsoup4 

U kunt het ook handmatig installeren; download de nieuwste releasebestanden rechtstreeks van de Beautiful Soup webpagina.

Werken met meerdere parsers

De Beautiful Soup-bibliotheek doet niet al het parseren zelf — in plaats daarvan zit hij bovenop volwassen parsers zoals Python’s ingebouwde html.parser, de snelle lxml-parser en de browser-achtige html5lib. Afhankelijk van de behoeften kunt u snelheid of standaardconformiteit prioriteren. Deze architectuur geeft u de flexibiliteit om de parser te kiezen die het beste bij uw behoeften past, de parsesnelheid te ruilen voor flexibiliteit, verschillende parseerstrategieën uit te proberen zonder uw Beautiful Soup-code te wijzigen, enzovoort. De volgende eenvoudige code laat zien hoe ontwikkelaars verschillende parsers met Beautiful Soup kunnen gebruiken.

Hoe meerdere parsers gebruiken voor het parseren van HTML-documenten in Python-apps?

# Using different parsers with Beautiful Soup
html_doc = "

Voorbeeldinhoud

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

Links extraheren van webpagina's

Het scrapen van links is een veelvoorkomende webscrapingtaak, vooral nuttig voor het bouwen van webcrawlers. De open‑source Beautiful Soup‑bibliotheek biedt ondersteuning voor het laden van webpagina's en het extraheren van links daarin binnen Python‑toepassingen. Het volgende eenvoudige code‑voorbeeld toont het ophalen van een live webpagina met behulp van de requests‑bibliotheek, waarna alle anker‑tags binnen Python‑toepassingen worden geëxtraheerd.

Hoe links extraheren van webpagina's met 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")

Specifieke HTML-elementen zoeken

Een van de grootste sterke punten van Beautiful Soup is hoe natuurlijk het je HTML laat doorzoeken, bijna alsof je gewone Engelse tekst leest. In plaats van te werken met complexe DOM‑API's, beschrijf je wat je wilt, en Beautiful Soup vindt het voor je. Stel dat je alle links op een pagina wilt vinden. Je kunt de find_all‑methode gebruiken zoals getoond in het volgende code‑voorbeeld. De methode retourneert een lijst van alle link‑tags. Vervolgens itereren we erdoor om de URL en tekst te extraheren en zo de zichtbare linknaam te verkrijgen met de Python‑API.

Hoe zoek en extraheer een specifiek HTML-element van een webpagina via de 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}")

Automatische coderingafhandeling

Een van de handigste functies van Beautiful Soup is de automatische coderingconversie. De bibliotheek converteert automatisch binnenkomende documenten naar Unicode en uitgaande documenten naar UTF-8, waardoor een van de meest voorkomende hoofdpijnproblemen bij webscraping wordt geëlimineerd. Houd er rekening mee dat je alleen over coderingen hoeft na te denken wanneer het document geen codering opgeeft, aangezien Beautiful Soup de codering niet automatisch kan detecteren. In deze zeldzame gevallen specificeer je simpelweg handmatig de oorspronkelijke codering.

 Dutch