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

Atvērtā koda Python bibliotēka HTML/XML parsēšanai un datu izguvei

Beautiful Soup ir vadoša atvērtā koda Python parsēšanas bibliotēka, kas parsē neapstrādātu HTML/XML, izguvē tekstu/saites, pārvietojas pa koku un nodrošina modernas tīmekļa skrāpēšanas darba plūsmas.

Kas ir Beautiful Soup?

Tīmekļa datu izvilkšana ir kļuvusi par būtisku prasmi datu zinātniekiem, izstrādātājiem un pētniekiem, kuriem jāizvelk vērtīga informācija no tīmekļa vietnēm. Beautiful Soup ir viena no populārākajām un lietotājam draudzīgākajām Python bibliotēkām HTML un XML dokumentu parsēšanai. Kopš tās izveides 2004. gadā šis spēcīgais rīks ir ietaupījis programmētājiem neiedomājamu daudz laika tīmekļa datu izvilkšanas projektos. Bibliotēkas intuitīvā API, izcila dokumentācija un aktīva kopienas atbalsts nodrošina, ka gan iesācēji, gan pieredzējuši izstrādātāji var efektīvi izvilkt tīmekļa datus.

Beautiful Soup ir Python bibliotēka, kas īpaši izstrādāta datu izgūšanai no HTML un XML failiem. Tā ir spēcīga Python bibliotēka, kas kopš 2004. gada ietaupa programmētājiem stundas vai dienas darba pie tīmekļa skrāpēšanas projektiem. Ar tikai dažām koda rindām jūs varat veikt sarežģītas vaicājumus, piemēram, vienkāršību un lietošanas ērtumu, atrast visus saites, izgūt teksta saturu, automātisku kodējuma konvertēšanu, parsera elastību, stabilu kļūdu apstrādi, meklēt un izgūt saites no tīmekļa lapām un daudz ko citu.

Beautiful Soup bibliotēka pārvērš bieži frustrējošo uzdevumu – datu izgūšanu no HTML un XML dokumentiem – vienkāršā Pythoniskā procesā, pārveidojot slikti strukturētu tīmekļa saturu par kārtīgi organizētām parsēšanas kokām, kuras varat pārvietoties un meklēt, izmantojot vienkāršas metodes. Tas, kas tradicionāli prasītu stundas manuāla kodēšanas, ar Beautiful Soup var izpildīt dažu minūšu laikā. Tā joprojām ir nozares standarts Python izstrādātājiem, kas ieiet tīmekļa skrāpēšanas pasaulē. Tās vienkāršība, apvienojumā ar dažādu parseru spēku, padara to par nepārspējamu izvēli datu izgūšanai no statiskām vietnēm.

Previous Next

Sākšana ar Beautiful Soup

Ieteicamais un vienkāršākais veids, kā instalēt Beautiful Soup, ir izmantot pip. Lūdzu, izmantojiet šādu komandu, lai veiktu gludu instalāciju.

Instalējiet Beautiful Soup bibliotēku, izmantojot pip

pip install beautifulsoup4 

Jūs varat arī instalēt to manuāli; lejupielādējiet jaunākos izlaiduma failus tieši no Beautiful Soup tīmekļa lapas.

Darbs ar vairākiem parsētājiem

Beautiful Soup bibliotēka neveic visu parsēšanu pašā; tā vietā tā balstās uz izturīgiem parsētājiem, piemēram, Python iebūvēto html.parser, ātro lxml parsētāju un pārlūkprogrammai līdzīgu html5lib. Atkarībā no vajadzībām, jūs varat dot priekšroku ātrumam vai atbilstībai standartiem. Šī arhitektūra sniedz elastību izvēlēties parsētāju, kas vislabāk atbilst jūsu vajadzībām, apmainīt parsēšanas ātrumu pret elastību, izmēģināt dažādas parsēšanas stratēģijas, nemainot jūsu Beautiful Soup kodu, utt. Zemāk esošais vienkāršais kods parāda, kā izstrādātāji var izmantot dažādus parsētājus ar Beautiful Soup.

Kā izmantot vairākus parsētājus HTML dokumentu parsēšanai Python lietotnēs?

# Using different parsers with Beautiful Soup
html_doc = "

Parauga saturs

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

Saišu izguve no tīmekļa lapām

Saiteņu izvilkšana ir izplatīts tīmekļa skrāpēšanas uzdevums, īpaši noderīgs, veidojot tīmekļa pārlūkus. Atvērtā koda Beautiful Soup bibliotēka ir iekļāvusi atbalstu tīmekļa lapu ielādēšanai un saites no tām izvilkšanai Python lietojumprogrammās. Zemāk esošais vienkāršais koda piemērs demonstrē dzīvas tīmekļa lapas izgūšanu, izmantojot requests bibliotēku, pēc tam visus enkura tagus izvelkot Python lietojumprogrammās.

Kā izvilkt saites no tīmekļa lapām, izmantojot 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")

Meklēšana pēc konkrētiem HTML elementiem

Viens no Beautiful Soup lielākajiem spēkiem ir tas, cik dabiski tas ļauj meklēt HTML, gandrīz kā lasot vienkāršu angļu valodu. Tā vietā, lai strādātu ar sarežģītām DOM API, jūs aprakstāt, ko vēlaties, un Beautiful Soup to atradīs jums. Pieņemsim, ka vēlaties atrast visas saites lapā. Jūs varat izmantot metodi find_all, kā parādīts zemāk esošajā koda piemērā. Metode atgriež sarakstu ar visiem saites tagiem. Tad mēs cauri tiem iterējam, lai izvilktu URL un tekstu, lai ar Python API iegūtu redzamo saites nosaukumu.

Kā meklēt un izvilkt konkrētu HTML elementu no tīmekļa lapas, izmantojot 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}")

Automātiska kodējuma apstrāde

Viens no Beautiful Soup visērtākajiem rīkiem ir automātiskā kodējuma pārveide. Bibliotēka automātiski pārvērš ienākošos dokumentus uz Unicode un izejošos dokumentus uz UTF-8, novēršot vienu no visbiežākajām galvassāpēm tīmekļa skrāpēšanā. Lūdzu, atcerieties, ka jādomā par kodējumiem tikai tad, ja dokuments nenoteikts kodējumu, jo Beautiful Soup nevar automātiski noteikt kodējumu. Šādos retajos gadījumos vienkārši norādiet sākotnējo kodējumu manuāli.

 Latviski