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

Atviro kodo Python biblioteka HTML/XML analizei ir duomenų išskyrimui

Beautiful Soup yra pirmaujanti atviro kodo Python analizės biblioteka, kuri apdoroja netvarkingą HTML/XML, išskiria tekstą/nuorodas, naršo medį ir palaiko šiuolaikinius žiniatinklio duomenų rinkimo procesus.

Kas yra Beautiful Soup?

Web scraping tapo būtinu įgūdžiu duomenų mokslininkams, programuotojams ir tyrėjams, kuriems reikia išgauti vertingą informaciją iš svetainių. Beautiful Soup yra viena populiariausių ir vartotojui patogiausių Python bibliotekų HTML ir XML dokumentų analizavimui. Nuo 2004 metų sukūrimo ši galinga priemonė programuotojams sutaupė begales valandų web scraping projektų metu. Bibliotekos intuityvi API, puiki dokumentacija ir aktyvi bendruomenės parama užtikrina, kad tiek pradedantieji, tiek patyrę kūrėjai galėtų efektyviai išgauti interneto duomenis.

Beautiful Soup yra Python biblioteka, specialiai sukurta duomenų ištraukimui iš HTML ir XML failų. Tai galinga Python biblioteka, kuri nuo 2004 metų taupo programuotojų valandas ar dienas dirbant su web scraping projektais. Vos keliais kodo eilutėmis galite atlikti sudėtingas užklausas, tokias kaip paprastumas ir naudojimo lengvumas, visų nuorodų radimas, teksto turinio ištrauka, automatinis kodavimo konvertavimas, parserio lankstumas, patikimas klaidų tvarkymas, nuorodų paieška ir ištrauka iš tinklalapių ir daugelis kitų.

Beautiful Soup biblioteka paverčia dažnai frustracinę duomenų ištraukimo iš HTML ir XML dokumentų užduotį į paprastą Python procesą, konvertuodama prastai struktūruotą internetinį turinį į tvarkingai organizuotas analizės medžius, kuriuos galite naršyti ir ieškoti paprastais metodais. Tai, kas tradiciškai užtruktų valandas rankinio kodavimo, gali būti įvykdyta per kelias minutes su Beautiful Soup. Ji išlieka pramonės standartu Python kūrėjams, pradedantiems dirbti su web scraping. Jos paprastumas, kartu su skirtingų parserių galia, daro ją neprilygstamu pasirinkimu duomenų ištraukimui iš statinių svetainių.

Previous Next

Pradžia su Beautiful Soup

Rekomenduojamas ir paprasčiausias būdas įdiegti Beautiful Soup yra naudojant pip. Prašome naudoti šią komandą sklandžiam įdiegimui.

Įdiekite Beautiful Soup biblioteką per pip

pip install beautifulsoup4 

Taip pat galite įdiegti jį rankiniu būdu; atsisiųskite naujausius leidimo failus tiesiai iš Beautiful Soup tinklalapio.

Darbas su keliais analizatoriais

Beautiful Soup biblioteka neatlieka visos analizės pati — vietoj to, ji veikia ant išsivysčiusių analizatorių, tokių kaip Python integruotas html.parser, greitas lxml analizatorius ir naršyklės panašus html5lib. Priklausomai nuo poreikių, galite pirmenybę teikti greičiui arba standartų atitikties. Ši architektūra suteikia lankstumo pasirinkti analizatorių, geriausiai atitinkantį jūsų poreikius, keisti analizės greitį dėl lankstumo, išbandyti skirtingas analizės strategijas nekeisdami Beautiful Soup kodo ir pan. Žemiau pateiktas paprastas kodas rodo, kaip kūrėjai gali naudoti skirtingus analizatorius su Beautiful Soup.

Kaip naudoti kelis analizatorius HTML dokumentų analizavimui Python programose?

# Using different parsers with Beautiful Soup
html_doc = "

Pavyzdinis turinys

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

Nuorodų ištraukimas iš tinklalapių

Nuorodų nuskaitymas yra įprasta žiniatinklio nuskaitymo užduotis, ypač naudinga kuriant žiniatinklio naršykles. Atviro kodo Beautiful Soup biblioteka įtraukė palaikymą tinklalapių įkėlimui ir nuorodų išskyrimui Python programose. Žemiau pateiktas paprastas kodo pavyzdys demonstruoja, kaip gauti tiesioginį tinklalapį naudojant requests biblioteką, o tada išskirti visas ankrožės žymas Python programose.

Kaip išgauti nuorodas iš interneto puslapių naudojant 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")

Specifinių HTML elementų paieška

Vienas iš didžiausių Beautiful Soup privalumų yra tai, kaip natūraliai ji leidžia ieškoti HTML, beveik kaip skaitant paprastą anglų kalbą. Vietoj to, kad susidurtumėte su sudėtingomis DOM API, apibūdinate, ko norite, ir Beautiful Soup tai suranda už jus. Tarkime, norite rasti visas puslapio nuorodas. Galite naudoti find_all metodą, kaip parodyta toliau pateiktame kodo pavyzdyje. Šis metodas grąžina visų nuorodų žymių sąrašą. Tada mes per juos iteruojame, kad išgautume URL ir tekstą, gaudami matomą nuorodos pavadinimą naudojant Python API.

Kaip ieškoti ir išgauti konkretų HTML elementą iš interneto puslapio naudojant 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}")

Automatinis kodavimo tvarkymas

Vienas iš patogiausių "Beautiful Soup" funkcijų yra automatinis koduotės konvertavimas. Biblioteka automatiškai konvertuoja gaunamus dokumentus į Unicode ir išsiunčiamus dokumentus į UTF-8, pašalindama vieną iš dažniausių galvos skausmų web nuskaityme. Prašome prisiminti, kad koduotės reikia apsvarstyti tik tada, kai dokumentas nenurodo koduotės, nes "Beautiful Soup" negali jos automatiškai aptikti. Šiais retais atvejais tiesiog rankiniu būdu nurodote originalią koduotę.

 Lietuvių