CodeGym /Kurslar /Python SELF AZ /BeautifulSoup ilə HTML parsing

BeautifulSoup ilə HTML parsing

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

1. HTML sənədlərin yüklənməsi və parsinqi

Qısa funksionallıq təqdimatı

requests kitabxanası bizim "mesaj göndərənimizdir", o veb səhifələrin HTML kodlarını gətirmək üçün yola düşür. O HTTP sorğuları edir və səhifələri, sanki pizzanın çatdırılması kimi, gətirir. Amma "Margarita" və ya qutuları gözləməyin :)

BeautifulSoup isə bizim " aşpazımızdır", o əldə edilmiş HTML-ni asanlıqla tərkib hissələrə (taglər, atributlar və mətnlər) ayırır ki, biz onlardan istifadə edə bilək. O bizə lazım olan elementləri tapmağa və bütün vacib məlumatları saxlamağa kömək edəcək.

requests kitabxanasının istifadəsi

İndi ilk HTTP sorğumuzu etmək və bir səhifənin HTML kodunu əldə etmək üçün hazırıq. Təcrübə üçün example.com səhifəsini yükləyək. Bu sayt internetin gerçək bir dinozavrıdır və başlanğıc üçün ideal seçimdir.

Python

import requests

url = 'http://example.com'
response = requests.get(url)

# Hər şeyin qaydasında olduğunu yoxlayaq
if response.status_code == 200:
    print("Səhifə uğurla yükləndi!")
else:
    print("Nəsə düzgün getmədi. Xəta kodu:", response.status_code)

Bu proqram URL-yə sorğu göndərəcək və cavaba əsasən müvəffəqiyyət və ya xətanı göstərəcək. Əgər hər şey qaydasındadırsa, bizdə səhifənin HTML kodu mətn şəklində olacaq.

Xəta kodlarını izləmək

Əgər siz parsinqi avtomatlaşdıracaqsınızsa, o zaman tez-tez elə bir səhifəyə rast gələcəksiniz ki, yüklənməli olduğu halda yüklənmir. Beləliklə, xəta kodlarını analiz etmək - bir neçə səhifədən çox parsinq edən layihənin vacib hissəsidir.

Məsələ ondadır ki, sayt sahibləri onların məlumatlarını parsinq etməyi sevmirlər. Əvvəla, bu sayt üçün yükdür (eyni anda minlərlə səhifə parsinq edəndə). İkincisi, bu onların məlumatlarıdır və onlar bunlardan pul qazanır. Parsinqə müqavimət göstərmək üçün çox üsullar var: CAPTCHA, CloudFlare və s.

Biznes üçün ideal hal odur ki, sən rəqiblərinin hamısını parsinq edə biləsən, amma heç kim səni edə bilməsin. Sanki soyuq müharibə kimi.

HTML parsinqi üçün BeautifulSoup istifadə etmək

HTML kodunu aldıqdan sonra ona BeautifulSoup ilə baxmağa başlaya bilərik. Bu, kitabı açıb onun məzmununu oxumağa bənzəyir:

Python

from bs4 import BeautifulSoup

# HTML kod məzmununu BeautifulSoup-a ötürürük
soup = BeautifulSoup(response.text, 'html.parser')

# İçəridə nə olduğunu yoxlayaq
print(soup.prettify())

prettify() metodu HTML kodunu gözəl formatda təqdim edir ki, siz onu öyrənə biləsiniz. Növbəti dərsdə, biz bu HTML-də qum qutusunda oynayan uşaqlar kimi qazmağa başlayacağıq. Evə yorğun, kirli, amma xoşbəxt qayıdacağıq :)

3. Praktika: HTML yüklənməsi və analizi

Anlayışı möhkəmləndirmək üçün praktik bir məşq edək. Gəlin example.com səhifəsinin başlığını və təsvirini çıxarmağa çalışaq. Bunu etmək üçün HTML haqqında biliklərimizdən və yeni BeautifulSoup biliklərimizdən istifadə edəcəyik.

Məlumatların çıxarılması

Python

# Səhifənin başlığını çıxarmaq
title = soup.title.string
print("Səhifənin başlığı:", title)

# Əsas başlıq (h1) çıxarmaq
main_heading = soup.h1.string
print("Əsas başlıq:", main_heading)

# Paraqrafın mətn məzmununun çıxarılması
paragraph = soup.find('p').text
print("Birinci paraqraf:", paragraph)

Bu nümunədə biz səhifədən lazım olan məlumat parçalarını çıxarmaq üçün title, h1 atributlarından və find() metodundan istifadə edirik. Biz cinayət yerində dəlilləri araşdıran kiber-təhqiqatçılara çevrilirik!

4. Tipik səhvlər

Çox güman ki, veb-skreypinglə işləyərkən tipik səhvlərlə qarşılaşacaqsınız, bunlara HTTP-sorğuların yanlış işlənməsi, məlumatların düzgün çıxarılmaması və ya HTML parsing zamanı səhvlər daxil ola bilər. Dayanıqlı və etibarlı skriptlərin hazırlanması səbr və təcrübə tələb edir. Məsələn, həmişə vəziyyət kodunu (response.status_code) yoxlayın ki, sorğunuzun uğurla icra olunduğuna əmin olun. find()find_all() metodlarından düzgün istifadə etməmək səhvlərə səbəb ola bilər, əgər HTML səhifələrinin strukturunu nəzərə almasanız. Parsingə başlamazdan əvvəl həmişə HTML-i analiz edin.

Veb-skreypingin bir çox praktiki tətbiqləri var: analitik məlumatların toplanmasından başlayaraq məhsul qiymətlərinin avtomatik monitorinqinə qədər. Bu biliklər müsahibələrdə faydalı ola bilər, harada layihə kodunun nümunələri haqqında soruşula bilər. Real praktikada, məsələn, marketoloqlar rəqiblərin qiymətlərini izləmək üçün skreypingdən istifadə edirlər, inkişaf etdiricilər isə - xarici saytlarla inteqrasiya üçün.

Əgər xəbər yığma və analitik sistemlər üçün məlumatların işlənməsi haqqında düşünürsünüzsə, veb-skreyping bilikləriniz işə yarayacaq. Rutini işləri avtomatlaşdıraraq, müxtəlif mənbələrdən məlumatları özləri toplayan skriptlər yarada bilərsiniz. Gəlin virtual tətbiqimizi inkişaf etdirək və özümüzü əsl veb master kimi hiss edək!

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