19 Haziran 2025 Perşembe

Python ile Web Scraping: BeautifulSoup ve Requests Kullanımı

Giriş: Web Scraping Nedir?

Web scraping, internet üzerindeki web sitelerinden veri çekme işlemine verilen isimdir. Bu teknik ile bir web sitesinde yer alan haberler, fiyatlar, listeler veya diğer içerikler otomatik olarak yazılımlar aracılığıyla toplanabilir. Günümüzde veri analizinden fiyat karşılaştırma sitelerine kadar pek çok alanda web scraping yoğun olarak kullanılmaktadır. Python programlama dili, bu alanda sunduğu zengin kütüphaneler ve kolay kullanımı ile en çok tercih edilen diller arasında yer almaktadır. Özellikle BeautifulSoup ve Requests kütüphaneleri, Python ile web scraping yapmayı oldukça pratik hale getirir.

BeautifulSoup ve Requests Kurulumu

Python ile web scraping yapmak için öncelikle BeautifulSoup ve Requests kütüphanelerini kurmanız gerekir. Bu kütüphaneler, veri çekme ve çekilen veriyi işleme süreçlerinde kullanılır. Kurulum için terminal veya komut satırına şu komutları yazabilirsiniz:

pip install beautifulsoup4 requests

Kurulum tamamlandıktan sonra, istediğiniz internet sitesi üzerinden veri çekmeye başlayabilirsiniz. Ancak unutulmamalıdır ki; bazı siteler scraping işlemlerine karşı koruma önlemleri alabilir. Bu nedenle, scraping yapmadan önce sitenin kullanım koşullarını ve yasal durumunu kontrol etmek önemlidir.

Requests ile Web Sitesinden Veri Çekmek

Scraping işleminin ilk adımı, hedef web sitesinin HTML içeriğini almak olacaktır. Bunu Requests kütüphanesi ile kolayca yapabilirsiniz. Örneğin, bir haber sitesinden ana sayfa verisini çekmek için aşağıdaki kodu kullanabilirsiniz:

import requests
url = 'https://www.ornekhaber.com'
response = requests.get(url)
print(response.text)

Yukarıdaki kodda requests.get() fonksiyonu ile belirttiğiniz URL'den tüm HTML içeriği çekilmiş olur. Sonraki adımda bu HTML verisi üzerinden istediğiniz alanları seçmek için BeautifulSoup devreye girer.

BeautifulSoup ile HTML İçerisinden Bilgi Çekmek

BeautifulSoup, HTML içeriğini parçalara ayırarak istediğiniz veri alanlarını kolayca seçmenizi sağlar. Örneğin, bir haber sitesindeki başlıkları çekmek için aşağıdaki kod örneği kullanılabilir:

from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
basliklar = soup.find_all('h2', class_='haber-baslik')
for baslik in basliklar:
    print(baslik.text)

Bu kodda, sayfa içindeki <h2 class="haber-baslik"> etiketiyle tanımlanmış tüm başlıklar çekilmekte ve ekrana yazdırılmaktadır. Farklı sitelerde farklı etiket ve sınıflar kullanılabileceğinden, her siteye özel olarak kodunuzu uyarlamanız gerekir.

Web Scraping İçin İpuçları ve Dikkat Edilmesi Gerekenler

Web scraping yaparken her zaman sitenin robots.txt dosyasını ve kullanım koşullarını kontrol edin. Ayrıca, çok sık ve hızlı istek göndermek, sitenin sizi engellemesine yol açabilir. Requests modülünde, istekler arasında zaman gecikmesi koymak için time.sleep() fonksiyonunu kullanabilirsiniz. Eğer çekmek istediğiniz veriler dinamik olarak yükleniyorsa (JavaScript ile), BeautifulSoup ve Requests yerine Selenium gibi daha gelişmiş araçlar kullanmanız gerekebilir.

Sonuç

Python ile web scraping yapmak, veri toplamak ve işlemek için oldukça güçlü bir yöntemdir. BeautifulSoup ve Requests kütüphaneleri ile temel düzeyde scraping işlemlerini hızlıca gerçekleştirebilirsiniz. Daha ileri seviye işlemler ve büyük projeler için ise proxy kullanımı, dinamik sayfa desteği ve veri temizleme gibi ek konuları öğrenmek yararlı olacaktır. Unutmayın, scraping işlemlerinde yasalara ve etik kurallara uymak her zaman önceliğiniz olmalıdır.

Hiç yorum yok: