1. Məhsullar
  2.   HTML
  3.   Python
  4.   Beautiful Soup
 
  

HTML/XML Parsinqi və Məlumat Çıxarışı üçün Açıq Mənbəli Python Kitabxanası

Beautiful Soup, qarışıq HTML/XML-i pars edən, mətn/keçidləri çıxaran, ağacı naviqasiya edən və müasir veb skreypinq iş axınlarını gücləndirən aparıcı açıq mənbəli Python parsinq kitabxanasıdır.

Beautiful Soup nədir?

Veb kazıma (web scraping) veb saytlarından dəyərli məlumatları çıxarmaq ehtiyacı olan məlumat alimləri, inkişafçılar və tədqiqatçılar üçün vacib bir bacarıq halına gəlib. Beautiful Soup, HTML və XML sənədlərini təhlil etmək üçün ən populyar və istifadəçi‑dostu Python kitabxanalarından biridir. 2004-cü ildə yaradıldığından bəri bu güclü alət proqramçılara veb kazıma layihələrində sayısız saat qənaət etmişdir. Kitabxananın intuitiv API‑si, mükəmməl sənədləşməsi və aktiv icma dəstəyi həm yeni başlayan, həm də təcrübəli inkişafçılara veb məlumatlarını səmərəli şəkildə çıxarmağa imkan verir.

Beautiful Soup, HTML və XML fayllarından məlumat çıxarmaq üçün xüsusi olaraq hazırlanmış Python kitabxanasıdır. 2004-cü ildən bəri veb kazıma layihələrində proqramçılara saatlar və ya günlər işini qənaət edən güclü bir Python kitabxanasıdır. Yalnız bir neçə sətir kodla sadəlik və istifadənin asanlığı, bütün keçidləri tapmaq, mətn məzmununu çıxarmaq, avtomatik kodlaşdırma çevrilməsi, parser elastikliyi, güclü səhv idarəetməsi, veb səhifələrdən axtarış və keçidlərin çıxarılması və daha çox kimi mürəkkəb sorğular yerinə yetirə bilərsiniz.

Beautiful Soup kitabxanası, HTML və XML sənədlərindən məlumat çıxarmaq kimi tez-tez əsəbləşdirici vəzifəni sadə bir Pythonik prosesə çevirir, zəif strukturlu veb məzmununu nizamlı parse ağaclarına çevirir ki, onları sadə metodlarla naviqasiya edib axtara biləsiniz. Ənənəvi olaraq saatlarla əl kodlaşdırma tələb edən işlər, Beautiful Soup ilə dəqiqələrdə həyata keçirilə bilər. Bu, veb kazıma dünyasına daxil olan Python inkişaf etdiriciləri üçün sənaye standartı olaraq qalır. Sadəliyi, müxtəlif parserlərin gücü ilə birləşərək, statik veb saytlarından məlumat çıxarmaq üçün rəqibsiz bir seçim edir.

Previous Next

Beautiful Soup ilə Başlamaq

Tövsiyə olunan və ən asan yol Beautiful Soup quraşdırmaq üçün pip istifadə etməkdir. Zəhmət olmasa aşağıdakı əmri istifadə edin, problemsiz quraşdırma üçün.

Beautiful Soup kitabxanasını pip vasitəsilə quraşdırın

pip install beautifulsoup4 

Siz həmçinin onu əl ilə quraşdıra bilərsiniz; son buraxılış fayllarını birbaşa Beautiful Soup veb səhifəsindən yükləyin.

Bir neçə Parçalamaçı ilə İşləmək

Beautiful Soup kitabxanası bütün təhlili öz-özünə həyata keçirmir — əvəzinə, Python-un daxili html.parser, sürətli lxml parseri və brauzer‑kimi html5lib kimi yetkin parserlərin üzərində yerləşir. Ehtiyaclarınıza görə sürətə və ya standartlara uyğunluğa üstünlük verə bilərsiniz. Bu arxitektura sizə ehtiyaclarınıza ən uyğun parseri seçmək, təhlil sürətini çevikliyə dəyişdirmək, Beautiful Soup kodunuzu dəyişdirmədən müxtəlif təhlil strategiyalarını sınamaq və s. imkanı verir. Aşağıdakı sadə kod, inkişaf etdiricilərin Beautiful Soup ilə müxtəlif parserlərdən necə istifadə edə biləcəyini göstərir.

Python tətbiqlərində HTML sənədlərini təhlil etmək üçün bir neçə parserdən necə istifadə etmək olar?

# Using different parsers with Beautiful Soup
html_doc = "

Nümunə məzmun

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

Veb səhifələrdən linklərin çıxarılması

Keçidlərin çıxarılması ümumi veb kazıma vəzifəsidir, xüsusilə veb tarayıcılar yaratmaq üçün faydalıdır. Açıq mənbəli Beautiful Soup kitabxanası Python tətbiqlərində veb səhifələri yükləmək və onlardan keçidləri çıxarmaq üçün dəstək əlavə edib. Aşağıdakı sadə kod nümunəsi requests kitabxanası ilə canlı veb səhifə əldə etməyi, sonra isə Python tətbiqlərində bütün anchor (bağlantı) teqlərini çıxarmağı göstərir.

Python ilə veb səhifələrdən linkləri necə çıxarmaq olar?

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

Müəyyən HTML elementlərini axtarmaq

Beautiful Soup-un ən böyük güclərindən biri, HTML-i təbii şəkildə axtarmağa imkan verməsidir, demək olar ki, sadə ingilis dilini oxumaq kimi. Çətin DOM API-ları ilə məşğul olmaq əvəzinə, nə istədiyinizi təsvir edirsiniz və Beautiful Soup sizin üçün onu tapır. Tutaq ki, bir səhifədəki bütün keçidləri tapmaq istəyirsiniz. Aşağıdakı kod nümunəsində göstərildiyi kimi, find_all metodundan istifadə edə bilərsiniz. Bu metod bütün link teqlərinin siyahısını qaytarır. Sonra biz onları dövr edərək URL və mətnini çıxarır, Python API vasitəsilə görünən link adını əldə edirik.

Python API vasitəsilə veb səhifədən xüsusi HTML elementini necə axtarmaq və çıxarmaq olar?

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

Avtomatik kodlaşdırma idarəetməsi

Beautiful Soup-un ən rahat xüsusiyyətlərindən biri onun avtomatik kodlaşdırma çevrilməsidir. Kitabxana daxil olan sənədləri avtomatik olaraq Unicode-a, çıxan sənədləri isə UTF-8-ə çevirir, veb kazıma zamanı ən çox rast gəlinən problemlərdən birini aradan qaldırır. Xahiş edirik yadda saxlayın ki, sənəd kodlaşdırmanı göstərmədikdə kodlaşdırma haqqında düşünməyiniz lazım deyil, çünki Beautiful Soup kodlaşdırmanı avtomatik olaraq təyin edə bilmir. Bu nadir hallarda, orijinal kodlaşdırmanı əl ilə göstərməlisiniz.

 Azəri