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

Open source Python knihovna pro parsování HTML/XML a extrakci dat

Beautiful Soup je přední open source Python knihovna pro parsování, která parsuje nepořádné HTML/XML, extrahuje text/odkazy, prochází strom a pohání moderní workflow web scrapingu.

Co je Beautiful Soup?

Web scraping se stal nezbytnou dovedností pro datové vědce, vývojáře a výzkumníky, kteří potřebují získávat cenné informace z webových stránek. Beautiful Soup je jednou z nejoblíbenějších a nejuživatelsky přívětivých Python knihoven pro parsování HTML a XML dokumentů. Od svého vzniku v roce 2004 tento výkonný nástroj ušetřil programátorům nespočet hodin při projektech web scrapingu. Intuitivní API knihovny, vynikající dokumentace a aktivní podpora komunity zajišťují, že jak začátečníci, tak zkušení vývojáři mohou efektivně získávat webová data.

Beautiful Soup je knihovna Pythonu speciálně navržená pro extrakci dat z HTML a XML souborů. Jedná se o výkonnou knihovnu Pythonu, která od roku 2004 šetří programátorům hodiny či dny práce na projektech web scrapingu. Pouhých několik řádků kódu vám umožní provádět složité dotazy, jako je jednoduchost a snadnost použití, najít všechny odkazy, extrahovat textový obsah, automatickou konverzi kódování, flexibilitu parseru, robustní zpracování chyb, vyhledávání a extrakci odkazů z webových stránek a mnoho dalšího.

Knihovna Beautiful Soup transformuje často frustrující úkol extrakce dat z HTML a XML dokumentů do přímého pythonického procesu, převádí špatně strukturovaný webový obsah na přehledně uspořádané parse stromy, které můžete procházet a vyhledávat pomocí jednoduchých metod. To, co by tradičně zabralo hodiny ručního kódování, lze s Beautiful Soup dosáhnout během minut. Stále zůstává průmyslovým standardem pro vývojáře Pythonu, kteří vstupují do světa web scrapingu. Jeho jednoduchost v kombinaci s výkonem různých parserů z něj činí neporazitelnou volbu pro extrakci dat ze statických webových stránek.

Previous Next

Začínáme s Beautiful Soup

Doporučený a nejjednodušší způsob instalace Beautiful Soup je pomocí pip. Použijte prosím následující příkaz pro hladkou instalaci.

Nainstalujte knihovnu Beautiful Soup pomocí pip

pip install beautifulsoup4 

Můžete jej také nainstalovat ručně; stáhněte nejnovější soubory vydání přímo z webové stránky Beautiful Soup .

Práce s více parsery

Knihovna Beautiful Soup neprovádí veškeré parsování sama — místo toho stojí nad vyspělými parsery, jako je vestavěný html.parser v Pythonu, rychlý parser lxml a prohlížečům podobný html5lib. V závislosti na potřebách můžete upřednostnit rychlost nebo soulad se standardy. Tato architektura vám poskytuje flexibilitu vybrat si parser, který nejlépe vyhovuje vašim potřebám, vyměnit rychlost parsování za flexibilitu, vyzkoušet různé strategie parsování bez změny kódu Beautiful Soup a podobně. Následující jednoduchý kód ukazuje, jak mohou vývojáři používat různé parsery s Beautiful Soup.

Jak použít více parserů pro parsování HTML dokumentů v Python aplikacích?

# Using different parsers with Beautiful Soup
html_doc = "

Ukázkový obsah

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

Extrahování odkazů z webových stránek

Scrapování odkazů je běžný úkol webového scrapingu, zejména užitečný pro tvorbu webových crawlerů. Open source knihovna Beautiful Soup zahrnuje podporu načítání webových stránek a extrahování odkazů v Python aplikacích. Následující jednoduchý příklad kódu ukazuje načtení živé webové stránky pomocí knihovny requests a následné extrahování všech anchor tagů v Python aplikacích.

Jak extrahovat odkazy z webových stránek pomocí Pythonu?

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

Vyhledávání konkrétních HTML elementů

Jednou z největších sil Beautiful Soup je, jak přirozeně vám umožňuje prohledávat HTML, téměř jako čtení prosté angličtiny. Místo práce s komplikovanými DOM API popíšete, co chcete, a Beautiful Soup to pro vás najde. Předpokládejme, že chcete najít všechny odkazy na stránce. Můžete použít metodu find_all, jak je ukázáno v následujícím příkladu kódu. Metoda vrací seznam všech odkazových tagů. Pak je procházíme, abychom extrahovali URL a text a získali viditelný název odkazu pomocí Python API.

Jak vyhledat a extrahovat konkrétní HTML prvek z webové stránky pomocí 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}")

Automatické zpracování kódování

Jednou z nejužitečnějších funkcí knihovny Beautiful Soup je její automatická konverze kódování. Knihovna automaticky převádí příchozí dokumenty na Unicode a odchozí dokumenty na UTF-8, čímž odstraňuje jeden z nejčastějších problémů při web scrapingu. Pamatujte, že o kódování musíte přemýšlet jen tehdy, když dokument nespecifikuje kódování, protože Beautiful Soup nedokáže kódování automaticky detekovat. V těchto výjimečných případech jednoduše ručně zadáte původní kódování.

 Čeština