Python : BS4 / BeautifulSoup Temel Anlatım
Python'da BeautifulSoup(BS4) nasıl kullanıldığı hakkında kısa ve net temel bilgiler ile bilmeniz gereken temel öncelikleri öğrenmenizi sağlayacağız. BeautifulSoup ya da kısaca BS4, HTML veya XML dosyalarını kolayca okumanı, aramanı ve verileri çıkarmanı sağlayan bir Python kütüphanesidir.
Python BeatifulSoup Kurulumu
Öncelikle Windows kullanıcı iseniz PATH bölümünde Python ekli olmalıdır.
Terminal bölümünde aşağıda ki komut satırını çalıştırmanız yeterlidir.
python -m pip install bs4
Hata alıyorsanız "python -m pip install --upgrade pip" komutunu çalıştırın
BeautifulSoup Temel Komutları
Örnek :
from bs4 import BeautifulSoup
BS4 HTML KOMUT AKTARIMI
BeautifulSoup kullanımında belirtmemiz için bir değişken içerisine html kodlarımızı aktarmalıyız. Bunun için "String Biçiminde!" olacak düzende olmasına dikkat etmemiz gerekiyor. Bir değişken daha oluşturarak html kodlarını BeautifulSoup içerisinde kullanmak için:
from bs4 import BeautifulSoup
html_doc = """
<html>
<head><title>Film Listesi</title></head>
<body>
<h1>Popüler Filmler</h1>
<h1>Yazılım Çalış</h1>
<h1>Mühendis Çalış Mühendis Ol</h1>
<div>Bu bir div içeriğidir</div>
<div>Bu iki div içeriğidir</div>
<div>Bu üç div içeriğidir</div>
<ul>
<li class="film">Inception</li>
<li class="film">Interstellar</li>
<li class="film">The Matrix</li>
</ul>
<a href="https://www.google.com">Google</a>
<a href="https://www.imdb.com">IMDb</a>
</body>
</html>
"""
soup = BeautifulSoup(html_doc,"html.parser")
Prettify (HTML Biçimlendirme)
HTML’yi güzelce biçimlenmiş (indentli) şekilde string olarak verir. Kısaca görsel temizlik için. Bir önceki örnekte vermiş olduğum <DİV> etiketinde hizalanmalarda 3 adet div adresinden bir satır sıralamanın gerisinde, bu tarz okuması karışık olan HTML kod dosyalarında Prettify kullanımı, kod yapısını görsel düzenlemeye kesin çözüm olacaktır.
Kod Çalıştırma :
from bs4 import BeautifulSoup
html_doc = """
<html>
<head><title>Film Listesi</title></head>
<body>
<h1>Popüler Filmler</h1>
<h1>Yazılım Çalış</h1>
<h1>Mühendis Çalış Mühendis Ol</h1>
<div>Bu bir div içeriğidir</div>
<div>Bu iki div içeriğidir</div>
<div>Bu üç div içeriğidir</div>
<ul>
<li class="film">Inception</li>
<li class="film">Interstellar</li>
<li class="film">The Matrix</li>
</ul>
<a href="https://www.google.com">Google</a>
<a href="https://www.imdb.com">IMDb</a>
</body>
</html>
"""
soup = BeautifulSoup(html_doc,"html.parser")
soup = soup.prettify()
print(soup)
Çıktısı :
Çıktı üzerinde bütün kod satırlarının artık daha düzenli ve işlev sıralamasına göre öncelikleri baz alınarak sıralandığını görebiliyoruz.
Tag Çıktısı(title,head,body,div)
HTML taglarının isteğe göre çıktı vermesini sağlar. İstenilen kısım Dictionary(Sözlük) yapısı ile belirtilerek görmek istenilen kısım HTML içerisinden seçilerek alınabilir.
Kod :
Kod :
soup = BeautifulSoup(html_doc,"html.parser")
result = soup.title
print(result)
Find ve Find_all
HTML kod blokları içerisinde belirtilen TAG içerisinde istenilen alt TAG içeriklerini sizlere getirir. Find ve Finl_all arasında ki fark nedir;
Find : Belirtilen TAG içeriğinin ilk elemanını liste olarak getirir.
Kod :
soup = BeautifulSoup(html_doc,"html.parser")
result = soup.find("div")
print(result)
Çıktı :
<div>Bu bir div içeriğidir</div>
Find_All : Belirtilen TAG içeriğinin tamamını liste olarak getirir.
Kod :
soup = BeautifulSoup(html_doc,"html.parser")
result = soup.find_all("div")
print(result)
Çıktı :
[<div>Bu bir div içeriğidir</div>, <div>Bu iki div içeriğidir</div>, <div>Bu üç div içeriğidir</div>]
Get ( Link Bulma, Class Sınıfı Seçme)
Genellikle kullanımı bir çekilen site HTML kod satırında belirtilen bazı linkleri bulmak için sınıf belirtmedir. Class içeriği ve İD gibi sınıflarında içerisinde arama yapar list şeklinde içerik döngü İD gibi kısımlarını bizlere çıktı olarak verir.
Kod :
soup = BeautifulSoup(html_doc,"html.parser")
result = soup.find_all("a")
for i in result:
print(i.get("href"))
Çıktı :
https://www.google.comhttps://www.imdb.com
TAG kullanımı ve amaçlarınız doğrultusunda "a","img","class","id" bölümleri sizlere istenilen çıktıyı ulaştıracaktır.
HackerHub Python Dersleri Hakkında
Bu içerikte, temel düzeyde BeautifulSoup kullanımı ele alındı. İlerleyen yazılarda, farklı Python kütüphanelerine dair hem temel hem de ileri seviye anlatımlarla sizlerle olacağız. Daha fazlası için Software kategorimizi ziyaret etmeyi unutmayın.
Post a Comment