Python ile Headless Chrome ile Web Scraping Yapmak

Web Scraping Nedir?

Web scraping, web sayfalarından veri çekmek için kullanılan bir tekniktir. Genellikle, belirli bir web sitesindeki bilgileri almak veya analiz etmek amacıyla kullanılır. Otomatikleştirilmiş bir yöntem olarak, kullanıcıların belirli bilgilere daha hızlı erişmesini sağlar. Örneğin, ürün fiyatlarını, haber başlıklarını veya içindekiler bölümlerini çekmeyi düşünebilirsiniz. Web scraping, birçok sektör için değerli bilgiler elde etmek amacıyla kullanılır; bu nedenle, doğru bir şekilde gerçekleştirilmesi önemlidir.

Python, web scraping için en popüler dillerden biridir. Bu, dilin basit sözdizimi, zengin kütüphane ekosistemi ve geniş kullanıcı topluluğu sayesinde mümkündür. Pyhton ile yaptığınız scraper projeleri, özellikle başkalarına yardımcı olmak veya kendi iş süreçlerinizi optimize etmek için son derece etkilidir. Ancak, scraping işlemini gerçekleştirirken uyulması gereken etik kurallara, örneğin hedef web sitesinin robots.txt dosyasına dikkat etmek önemlidir. Bu dosya, hangi botların siteyi ziyarete izin verilip verilmediğini belirler.

Headless Chrome Nedir?

Headless Chrome, Google Chrome tarayıcısının kullanıcı arayüzü olmadan çalışmasını sağlayan bir uygulamadır. Başka bir deyişle, Headless Chrome, geleneksel tarayıcı penceresi olmadan işlem yapar. Bunu yapmak, bilgisayar kaynaklarını daha verimli kullanmanıza olanak tanır ve scraping işlemlerinin hızını artırır. Headless tarayıcılar, genellikle otomatik test ve web scraping işlemleri için tercih edilir.

Python ile çalıştığınızda, Headless Chrome’u Selenium gibi kütüphaneler aracılığıyla entegre edebilirsiniz. Selenium, web tarayıcılarını kontrol etmenizi sağlayan güçlü bir kütüphanedir ve tarayıcıyı başlatmadan veri çekmek için kullanıldığında oldukça etkili bir hale gelir. Headless Chrome kullanarak veri çekme işlemlerinizi hızlandırabilir ve sistem kaynaklarınızı daha verimli bir şekilde kullanabilirsiniz.

Python ile Headless Chrome Kurulumu

Pythonda Headless Chrome kullanarak web scraping yapabilmek için gerekli kütüphaneleri öncelikle kurmanız gerekiyor. Başlangıç olarak, Selenium kütüphanesini ve ChromeDriver’ı yüklemeniz gerekecek. ChromeDriver, Chrome tarayıcınızı kontrol etmenizi sağlayan bir araçtır. Aşağıdaki komutları kullanarak Selenium’u kurabilirsiniz:

pip install selenium

Bunun yanı sıra, ChromeDriver’ı bilgisayarınıza indirip sisteminizin PATH’ine eklemek de gereklidir. ChromeDriver sürümünüzün, yüklü olan Chrome tarayıcınızla uyumlu olduğunu kontrol etmek önemlidir. ChromeDriver’ınızı yükledikten sonra, aşağıdaki kod örneği ile basit bir headless tarayıcı örneği oluşturabilirsiniz:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

options = Options()
options.headless = True

service = Service('path/to/chromedriver')

with webdriver.Chrome(service=service, options=options) as driver:
    driver.get('https://example.com')
    print(driver.title)

Bu kod parçası, başlıksız bir Chrome tarayıcısı oluşturur, belirtilen URL’ye gider ve sayfanın başlığını döndürür.

Web Sayfasından Veri Çekmek

Yukarıdaki temel kurulum yapıldıktan sonra, web sayfasından veri çekme işlemine geçebilirsiniz. Örneğin, belirli HTML elemanlarının içeriğini almak için Selenium’un sağladığı çeşitli yöntemleri kullanabilirsiniz. Bir web sayfasındaki belirli bir öğenin metin içeriğini almak için, elementin seçicisini kullanarak aşağıdaki gibi bir kod yazabilirsiniz:

element = driver.find_element(by='css selector', value='.classname')
print(element.text)

Burada, belirli bir sınıf adıyla ‘classname’ değerini kullandığımızı ve bunun sayfadaki öğenin metnini aldığımızı unutmamalısınız. CSS seçicilerini ve XPath kullanarak daha karmaşık seçimler yapabilirsiniz. Örneğin, bir tablo verisini çekmek istiyorsanız, tablonun belirli hücrelerine erişerek bu hücrelerin içeriğini alabilirsiniz.

Örnek bir tablo veri çekme işlemi: rows = driver.find_elements(by='css selector', value='table tr') kullanarak tüm satırları çekebilir ve ardından her satırdan verileri döngü ile alabilirsiniz.

Çekilen Verilerin İşlenmesi

Web sayfasından verileri çektikten sonra, bu verileri işlemek ve düzenlemek de önemlidir. Python’un makine öğrenmesi ve veri analizi kütüphanelerinden biri olan Pandas’ı kullanarak verileri daha yönetilebilir bir forma getirebilirsiniz. Pandas, veri çerçeveleri ile işlemler yapmanıza olanak tanır ve CSV, Excel gibi formatlarda dışa aktarılmasını kolaylaştırır.

import pandas as pd

# Örnek verileri içeren bir liste oluşturma
data = []
for row in rows:
    cols = row.find_elements(by='tag name', value='td')
    data.append([col.text for col in cols])

# Verileri pandas DataFrame'e aktar
df = pd.DataFrame(data, columns=['Column1', 'Column2'])

# CSV dosyası olarak dışa aktarma
 df.to_csv('output.csv', index=False)

Burada, çektiğimiz verileri bir listeye ekliyor ve son olarak bir DataFrame’e dönüştürerek dışa aktarıyoruz. Pandas’ın sağladığı işlevler sayesinde verilerle ilgili daha fazla analiz de yapabilirsiniz. Bu, belirli ölçümlerin, istatistiklerin ve veri görselleştirmenin yapılmasını kolaylaştırır.

Hata Yönetimi

Web scraping yaparken karşılaşabileceğiniz bazı yaygın hatalar ve bunların çözümleriyle ilgili bilgi sahibi olmak önemlidir. En yaygın sorunlardan biri, sayfa yüklenmeden veri çekmeye çalışmaktır. Bu durumda, Selenium’un beklentilerini kullanarak sayfanın yüklenmesini bekleyebilirsiniz. Aşağıdaki kod parçası ile belirli bir öğenin yüklenmesini bekleyebilirsiniz:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.classname')))

Bu kod, belirli bir öğe yüklendiğinde devam etmenizi sağlayacaktır. Ayrıca, ”try-except” bloklarını kullanarak beklenmeyen hataları yönetebilir ve daha dayanıklı bir scraper oluşturabilirsiniz.

Sonuç

Python ile Headless Chrome kullanarak etkili bir şekilde web scraping yapmak, bilgi ediniminde ve veri analizi süreçlerinde önemli bir araçtır. Doğru bir şekilde uygulandığında, bu yöntem büyük miktarda veri toplamanıza ve bu verileri anlamlı bir şekilde işlemenize olanak tanır. Etik kurallara uymak, hedef web sitelerinin kullanım şartlarını dikkate almak ve gerekli izinleri almak, bu süreçte dikkat edilmesi gereken en önemli unsurlardan bazılarıdır.

Artık web scraping konusunda temel bilgilere sahipsiniz. Bu bilgilerle başlayarak, kendi projelerinizi geliştirebilir ve veri toplama ihtiyaçlarınızı karşılayacak daha karmaşık uygulamalar oluşturabilirsiniz. Unutmayın, bu süreçte ve uygulamalarda sürekli olarak öğrenme ve deneme yapmaya açık olun. Yeni bir şeyler denemek, gelişiminizi hızlandıracaktır.

Umarım bu kılavuz, Python ile Headless Chrome kullanarak web scraping konusunda size yardımcı olmuştur. Şimdi sıra sizde! Kendi projeleriniz için bu yöntemleri uygulamaya ve denemeye başlayın!

Scroll to Top