CodeGym /Kurslar /Python SELF AZ /BeautifulSoup metodları ilə HTML elementlərindən mətn və ...

BeautifulSoup metodları ilə HTML elementlərindən mətn və atributların çıxarılması

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Mətn çıxarış metodlarına giriş

Bugün HTML elementlərindən qiymətli mətn məlumatlarını və atributlarını necə çıxaracağımızı öyrənəcəyik. Maçetlərinizi bir kənara atın, çünki BeautifulSoup ilə işləmək, yalnız payız bağçasında gəzib alma yığmağa bənzərlik təşkil edir. Öyrəndiyiniz biliklərin bəhrəsini toplamağa hazır olun? Hadi başlayaq!

HTML elementlərindən mətn çıxarış metodları bizim siyahımızda birinci yerdədir. Mətnləri çıxarmağa başlamazdan əvvəl səhifəni yükləyək.

Python

import requests
from bs4 import BeautifulSoup

# Səhifənin HTML kodunu yükləyirik
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

İndi bizim soup obyektimiz var ki, o HTML sənədimizin ağacvari strukturu saxlayır. Hadi hər hansı bir etiket elementindən mətn çıxaraq, məsələn, başlıqdan.

Metod .textget_text()

.text xassəsi və onun analoqu get_text() metodu elementin (və onun bütün daxilindəki elementlərin) mətn məzmununu əldə etməyə imkan verir.

Python

# İlk tapılmış h1 başlığından mətn çıxarırıq
h1_tag = soup.find('h1')
print(h1_tag.text) # və ya h1_tag.get_text()

Özünüz sınayın: əvvəlki mühazirələrimizdə öyrəndiyimiz axtarış metodlarından istifadə edərək digər elementləri tapın və onların mətnlərini çıxarın. Siz təəccüblənəcəksiniz ki, nə qədər çox məlumat əldə etmək mümkündür!

2. Atributların dəyərlərini çıxarmaq

Mətnlər mətnlərdir, amma bəzən vacib məlumatlar atributlarda gizlənir, elə bil ki, cibdəki sənədlər kimi. Təsəvvür edin ki, sizə linkin ünvanını öyrənmək və ya bir şəkilin URL-ni əldə etmək lazımdır (və məndən bunun nə üçün lazım ola biləcəyini soruşmayın; bəlkə də pişik şəkilləri kolleksiyası yığmaq istəyəcəksiniz).

Atributların dəyərlərini çıxarmaq

Tutaq ki, bizdə bir link element <a href="https://example.com">Example</a>. href dəyərini necə çıxara bilərik? Çox asandır.

Python

# Linki çıxarırıq
a_tag = soup.find('a')
link = a_tag['href']
print("Link:", link)

Bu kod href atributunun dəyərini çıxardı. Digər faydalı atributları da bu şəkildə çıxara bilərsiniz.

Şəkil əldə etməyə çalışırıq

Şəkilin URL-ni çıxarmaq bir o qədər də sadə ola bilər. <img src="image.jpg" alt="Pişik"> vəziyyətinə baxaq.

Python

# Şəklin URL-ni çıxarırıq
img_tag = soup.find('img')
image_url = img_tag['src']
print("Şəklin URL-ni:", image_url)

BeautifulSoup ilə işin gözəlliyi ondadır ki, o, asanlıqla məlumatları tapmağa və çıxarmağa imkan yaradır, bizi HTML strukturunun necə işlədiyini düşünməyə məcbur etmir.

3. Mətnlərin və atributların çıxarılması nümunələri

Gəlin nümunələrə keçək. Gəlin bir az daha mürəkkəb bir tapşırığı nəzərdən keçirək: səhifədəki bütün linkləri, <a> taglarının içindəki mətnlərlə birlikdə çıxaraq.

Nümunə: bütün linklərin mətnlə çıxarılması

Python

# Bütün a taglarını tapırıq
a_tags = soup.find_all('a')

# Linki və mətni çıxarırıq
for a_tag in a_tags:
 link = a_tag['href']
 text = a_tag.get_text()
 print(f"Mətn: {text}, Link: {link}")

Gördüyünüz kimi, find_all metodu axtarış şərtlərinə cavab verən bütün elementləri asanlıqla tapır, for-dövrü isə onların hər birini gəzməyə imkan verir.

4. Xətaların idarə olunması

Xətaları idarə etməyi unutmayın. Bəzən HTML strukturu sizin gözlədiyiniz kimi olmaya bilər və ya element gözlənilən atributa sahib olmaya bilər. Kodunuzun belə hallarda "çöküb" qalmaması üçün tədbir görün.

Python

# Atribut çıxarılarkən xətanın idarə olunma nümunəsi
try:
 link = a_tag['href']
except KeyError:
 link = None
 print("href atributu tapılmadı!")

Bu, skripti daha dayanıqlı edəcək və o, bir qeyri-müəyyən səhv üzündən dayanmayacaq.

5. Real tətbiq

2019-cu ildə rusiyalı bir təşəbbüskar öz şirkətinin hekayəsini paylaşdı. Şirkəti məlumat toplama üzrə ixtisaslaşmışdı və illik dövriyyəsi 20 milyon rubl olan bir səviyyəyə çatmışdı. O, qeyd etdi ki, avtomatlaşdırılmış məlumat toplama rəqabəti məhdudlaşdırmır, əksinə, bizneslərin bazara uyğunlaşmasına kömək edir.

Məsələn, müştərilərdən biri hər gün tədarükçünün saytındakı məhsul qalığını toplamaq üçün bir parser sifariş etdi. Bu, öz internet-mağazasındakı çeşidləri və qiymətləri operativ şəkildə yeniləməyə imkan verdi. Sahibkar onu da vurğuladı ki, bəzi saytların məlumatların toplanmasını çətinləşdirməyə çalışmasına baxmayaraq, müasir texnologiyalar belə maneələri effektiv şəkildə keçməyə imkan verir və bizneslərə strateji qərarlar qəbul etmək üçün lazımi məlumatlara çıxışı təmin edir.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION