Python ile Web Scraping'e Giriş: Veri Toplamanın Eğlenceli Yolu 🕷️

thedevx

Üye
Katılım
14 Mart 2026
Mesajlar
4
Python ile Web Scraping'e Giriş: Veri Toplamanın Eğlenceli Yolu 🕷️

Selam dostlar! Bugün sizlere, Python'ın en keyifli ve pratik kullanım alanlarından biri olan web scraping'den (web kazıma) bahsedeceğim. Eğer "internetteki bir sürü veriyi otomatik olarak nasıl toplarım?" diye merak ediyorsanız, doğru yerdesiniz. Hadi başlayalım! 🐍

Web Scraping Nedir?
Basitçe söylemek gerekirse, web scraping, web sitelerinden veriyi otomatik olarak çekme ve yapılandırma işlemidir. Fiyat karşılaştırması yapmak, haber başlıklarını toplamak, sosyal medya analizi veya bir araştırma için veri derlemek gibi birçok alanda kullanılır. Ancak dikkat! Her zaman site sahibinin robots.txt dosyasına ve kullanım şartlarına saygı gösterin. Etik ve yasal sınırlar içinde kalın.

İhtiyacımız Olan Araçlar
Python'da web scraping için birkaç harika kütüphane var. İlk adımlar için en popüler ikilisi:
  • Requests: Web sayfalarını indirmemizi sağlar. HTTP isteklerini gönderip cevaplarını alır.
  • Beautiful Soup (bs4): İndirdiğimiz HTML veya XML içeriğini ayrıştırmamıza (parse), yani içinden istediğimiz verileri seçip çekmemize yarar.
Bu kütüphaneleri kurmak çok kolay. Terminalinizde şu komutu çalıştırmanız yeterli:
Python:
pip install requests beautifulsoup4

İlk Kazımamızı Yapalım!
Pratik yapmak için genellikle test amaçlı kullanılan bir site olan "
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
" üzerinden basit bir örnek yapacağız. Amacımız, ana sayfadaki kitap isimlerini listelemek.

İşte adım adım kodumuz:

Python:
import requests
from bs4 import BeautifulSoup

# 1. Adım: Web sayfasını indir.
url = "http://books.toscrape.com/"
response = requests.get(url)

# İsteğimizin başarılı olup olmadığını kontrol edelim (200 OK).
if response.status_code == 200:
    print("Sayfa başarıyla indirildi!")
else:
    print(f"Bir sorun oluştu. Hata Kodu: {response.status_code}")

# 2. Adım: İndirilen içeriği BeautifulSoup ile ayrıştır.
# 'html.parser' HTML'i anlamlandırmak için kullandığımız ayrıştırıcı.
soup = BeautifulSoup(response.content, 'html.parser')

# 3. Adım: İstediğimiz veriyi bul.
# Tarayıcı geliştirici araçları (F12) ile sayfa yapısını inceleyebilirsiniz.
# Bu sitede, kitap isimleri <h3> etiketi içindeki <a> etiketinin 'title' özelliğinde.
books = soup.find_all('h3')

# 4. Adım: Veriyi işle ve göster.
print("\n--- Kitapların Listesi ---")
for index, book in enumerate(books, start=1):
    # Her bir <h3> etiketinin içindeki <a> etiketine ulaşıp 'title' değerini alıyoruz.
    book_title = book.a['title']
    print(f"{index}. {book_title}")

Bu kodu çalıştırdığınızda, konsolunuzda kitap isimlerinin listelendiğini göreceksiniz. İşte ilk scrapin' işleminiz tamamlandı! ⚙️

Bir Sonraki Adımlar İçin İpuçları
  • Sayfalama (Pagination): Çoğu site veriyi birden fazla sayfada gösterir. `requests.get()` ile farklı sayfa numaralarını döngüye alarak tüm veriyi toplayabilirsiniz.
  • CSS Seçicileri (Select): `find_all` yerine `soup.select('.product_pod h3 a')` gibi CSS seçicileri kullanmak daha esnek ve güçlü olabilir.
  • Dinamik İçerikler: Eğer site JavaScript ile yüklenen veriler kullanıyorsa, `requests` ve `BeautifulSoup` yeterli olmayabilir. Bu durumda Selenium veya Playwright gibi araçlara ihtiyaç duyarsınız.
  • Nazik Olun (Be Polite): Sunucuyu aşırı yüklememek için istekler arasında `time.sleep(2)` gibi bekleme süreleri ekleyin. Ayrıca `User-Agent` başlığınızı ayarlamak iyi bir pratiktir.

Umarım bu rehber, web'in görünmeyen veri hazinelerine açılan kapıyı aralamanıza yardımcı olur. Başlangıç için basit projelerle (örneğin, hava durumu bilgisini çekmek, döviz kurlarını takip etmek) pratik yapın. 🎯

Sormak istediğiniz bir şey var mı? Hangi sitelerden veri çekmek istiyorsunuz? Yorumlarda fikirlerinizi paylaşın, birlikte tartışalım!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri