Python ile Web Scraping Web Sitelerinden Otomatik Veri Çekme

Python ile web scraping yaparak internetteki verileri otomatik çekebilirsiniz. Bu kapsamlı rehberde BeautifulSoup, Requests ve Selenium ile veri toplama tekniklerini öğrenin.

Ali YILMAZ
Ali YILMAZ

Yönetici

249

Python ile Web Scraping: Web Sitelerinden Otomatik Veri Çekme

İnternet üzerinde her gün milyarlarca veri üretiliyor. Bu verilerin büyük çoğunluğu web sitelerinde yer alıyor ve çoğu zaman manuel olarak bu verilere ulaşmak oldukça zahmetli olabiliyor. Python ile web scraping sayesinde, bu verileri otomatik olarak çekip analiz etmek mümkün hale geliyor.

Web Scraping Nedir?

Web scraping (veya web kazıma), internet sitelerinden belirli verileri otomatik olarak çekme işlemidir. Python, bu işi yapmak için oldukça güçlü kütüphaneler sunar: BeautifulSoup, Requests, Selenium gibi araçlar sayesinde HTML yapısını çözümleyip verileri ayrıştırabilirsiniz.

Python ile Web Scraping İçin Gereken Kütüphaneler

  • requests: Web sitesine istek gönderip sayfa kaynağını almak için kullanılır.
  • BeautifulSoup: HTML verisini parse etmek ve içerikleri ayrıştırmak için kullanılır.
  • Selenium: JavaScript ile oluşturulan dinamik siteler için kullanılır.

1. Requests + BeautifulSoup ile Temel Web Scraping

Başlangıç olarak statik bir web sayfasından başlıkları çekme örneğiyle başlayalım.

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
headers = {'User-Agent': 'Mozilla/5.0'}

response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")

basliklar = soup.find_all("h2")
for baslik in basliklar:
    print(baslik.text)

2. HTML Etiketleri ile Veri Seçimi

BeautifulSoup kullanırken istediğiniz HTML etiketine göre veri çekebilirsiniz:

icerik = soup.find("div", class_="icerik")
linkler = soup.find_all("a", href=True)

3. Sayfa Yapısını Anlamak İçin İnceleme

Veri çekeceğiniz sayfanın HTML yapısını tarayıcı sağ tıklayıp "İncele" ile açarak belirli etiket ve sınıfları bulabilirsiniz.

4. Dinamik Sayfalardan Veri Çekmek: Selenium Kullanımı

Eğer sayfa içeriği JavaScript ile sonradan yükleniyorsa, requests yetersiz kalabilir. Bu durumda Selenium devreye girer.

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example.com")

basliklar = driver.find_elements(By.TAG_NAME, "h2")
for baslik in basliklar:
    print(baslik.text)

driver.quit()

5. Veri Temizleme ve Saklama

Çektiğiniz verileri bir listeye alıp CSV ya da Excel dosyasına kaydedebilirsiniz.

import pandas as pd

veri = {
    "Baslik": ["Veri 1", "Veri 2", "Veri 3"]
}

df = pd.DataFrame(veri)
df.to_csv("basliklar.csv", index=False)

Web Scraping Yaparken Dikkat Edilmesi Gerekenler

  • Her web sitesinin veri çekilmesine izin verip vermediğini robots.txt dosyasına bakarak öğrenin.
  • Aşırı istek göndermek sunucuya zarar verebilir, bu yüzden time.sleep() ile istekleri aralıklarla yapın.
  • Legal açıdan bazı sitelerin içeriklerini izinsiz almak yasal sorun doğurabilir.

Gerçek Hayatta Kullanım Örnekleri

  • Haber sitelerinden manşetleri çekmek
  • E-ticaret sitelerinden fiyat karşılaştırma
  • Forumlardan yorum analizi
  • Kripto para sitelerinden anlık fiyat verisi çekmek
  • LinkedIn benzeri sitelerden açık iş ilanları toplamak

 

Python ile web scraping, internetteki sınırsız veriyi analiz edilebilir hale getirmek için güçlü bir yöntemdir. Gerek akademik çalışmalarda, gerek iş dünyasında veri toplamak ve değerlendirmek isteyen herkes için oldukça kullanışlıdır. Ancak bu işlemi yaparken sitenin izinlerine dikkat etmek ve etik kuralları gözetmek büyük önem taşır.

Bu yazıdaki bilgilerle artık kendi veri çekme botlarınızı yazabilir, projeleriniz için özgün veri kaynakları oluşturabilirsiniz.




Paylaş

Etiketler


Yorum Yok

    Bu Yazıya Hiç Yorum Yapılmamış. İlk Yorum Yapan Sen Ol !

Yorum Yap


Instagram