Python'da Web Scraping: BeautifulSoup Kullanımı
1. Giriş
Günümüzde internet, devasa bir bilgi kaynağı haline gelmiştir. Ancak, bu bilgilere manuel olarak erişim zaman alıcı ve verimsiz olabilir. Web scraping, internet sitelerinden veri çekmek ve bu veriyi kullanılabilir hale getirmek için yaygın olarak kullanılan bir tekniktir. Python, web scraping için çeşitli kütüphaneler sunmaktadır ve bu kütüphanelerden en popülerlerinden biri BeautifulSoup'tur.
![]() |
Python Programlama - TekNo Gen TR |
Bu makalede, BeautifulSoup'un temel kullanımı, avantajları ve uygulama alanları detaylı bir şekilde ele alınacaktır.
2. Web Scraping ve BeautifulSoup’un Teorik Temeli
Web scraping, HTML ve XML gibi yapısal web sayfalarından veri çekme işlemi olarak tanımlanabilir. Web scraping süreci genellikle aşağıdaki adımlardan oluşur:
- Web sayfasına HTTP isteği gönderme.
- Sayfanın HTML veya XML yapısını analiz etme.
- Belirli verileri çekme ve saklama.
BeautifulSoup, Python'un "bs4" modülü üzerinden kullanılan, HTML ve XML parsing için tasarlanmış bir kütüphanedir. Kullanıcı dostu yapısı sayesinde HTML etiketlerini kolayca analiz etmeyi sağlar ve karmaşık HTML dökümanlarını anlamlandırmayı kolaylaştırır.
3. BeautifulSoup ile Web Scraping
3.1. BeautifulSoup'un Kurulumu
BeautifulSoup kütüphanesi, Python paket yöneticisi pip ile kolayca kurulabilir:
pip install beautifulsoup4 requests
Ayrıca, web sayfalarından veri almak için "requests" kütüphanesi de gereklidir.
3.2. Temel Kullanım
from bs4 import BeautifulSoup
import requests
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
print(soup.title.text) # Sayfa başlığını yazdırma
Bu kod, belirtilen web sayfasının HTML yapısını çözümleyerek, sayfa başlığını ekrana yazdırır.
3.3. HTML Elementlerine Erişim
BeautifulSoup, belirli HTML elementlerine erişim sağlamak için "find" ve "find_all" metodlarını sunar:
# Tüm başlıkları (<h2> etiketleri) bulma
basliklar = soup.find_all("h2")
for baslik in basliklar:
print(baslik.text)
Bu kod, sayfadaki tüm "h2" etiketlerini bulur ve bunları ekrana yazdırır.
3.4. CSS Seçiciler ile Veri Çekme
veri = soup.select("div.class_adi")
CSS seçiciler kullanarak belirli HTML etiketlerini ve sınıfları hedefleyerek veri çekilebilir.
4. Web Scraping Etiği ve Hukuki Boyutları
Web scraping yaparken etik ve hukuki kurallara dikkat edilmelidir. Web sitelerinin "robots.txt" dosyası, hangi sayfalara erişim yapılabileceğini belirler. İzinsiz scraping yapmanın hukuki sorunlara yol açabileceği unutulmamalıdır.
5. Uygulama Senaryosu: Haber Sitelerinden Veri Çekme
Bir haber sitesinden başlıkları çekmek için aşağıdaki kod kullanılabilir:
url = "https://example-news.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
haberler = soup.find_all("h3", class_="news-title")
for haber in haberler:
print(haber.text)
Bu uygulama, haber sitelerindeki başlıkları analiz ederek veri madenciliği yapmaya olanak tanır.
6. Sonuç
BeautifulSoup, Python ile web scraping yapmak için kullanışı, esnek ve güçlü bir kütüphanedir. Web scraping yaparken etik kurallara uyulması ve web sitelerinin kullanım politikalarının dikkate alınması büyük önem taşımaktadır.
7. Kaynaklar
- Mitchell, R. (2018). "Web Scraping with Python". O'Reilly Media.
- Crummy, L. (2022). "BeautifulSoup Documentation". https://www.crummy.com/software/BeautifulSoup/bs4/doc/
- Russell, M. (2019). "Mining the Social Web". O'Reilly Media.
8. Kaynak: (TekNo.Gen.TR)
Bu doküman, platformumuzun uzman editörleri tarafından özenle hazırlanarak titizlikle derlenmiştir. İçerik, alanında deneyimli profesyonellerin katkılarıyla, en güncel bilgilere ve kaynaklara dayanarak oluşturulmuştur.
![]() |
Python Programlama - TekNo Gen TR |
![]() |
Python Programlama - Ak Web TR |
Ak.Web.TR, Python Programlama alanında kapsamlı eğitimler sunarak, katılımcıların yazılım geliştirme becerilerini ileriye taşımasına yardımcı olmaktadır. Python'un basit ve etkili yapısı, hem yeni başlayanlar hem de deneyimli yazılımcılar için ideal bir dil olmasını sağlar. Eğitimlerimiz, veri analitiği, yapay zeka, web geliştirme ve otomasyon gibi geniş alanlarda derinlemesine bilgi edinmenizi sağlar. Python programlamada temel kavramlardan ileri düzey tekniklere kadar geniş bir yelpazede içerik sunan kurslarımız, katılımcılara sektördeki en güncel bilgileri öğretmek amacıyla tasarlanmıştır.
Ak.Web.TR ile Python öğrenerek, yazılım dünyasında güçlü bir kariyer temeli oluşturabilirsiniz.