Python ile HTML’yi CSV’ye Dönüştürmenin Yolları

Giriş

Python, veri işleme ve dönüştürme konularında sunduğu güçlü kütüphanelerle kullanıcılarına büyük kolaylıklar sağlamaktadır. Bu yazıda, HTML formatındaki verileri CSV (Comma-Separated Values) formatına dönüştürmenin yollarını detaylı bir şekilde ele alacağız. CSV dosyaları, tabular verileri saklamak için oldukça popüler bir format olup, veri analizi, raporlama ve veri transferi gibi birçok alanda kullanılmaktadır. Özellikle HTML sayfalarındaki verilerin CSV’ye dönüştürülmesi, veri bilimi ve makine öğrenimi projelerinde önemli bir aşama olan veri temizleme ve analiz süreçlerini kolaylaştırır.

Bu yazıda, Python ile HTML verilerini nasıl CSV formatına dönüştürebileceğinizi açıklayacak; Beautiful Soup ve Pandas kütüphanelerini kullanarak adım adım bir rehber sunacağız. Aynı zamanda, veri dönüşümünü yaparken karşılaşabileceğiniz olası hatları ve bunların çözümlerini de paylaşacağız. Hazırsanız, başlayalım!

HTML’den Veri Çekme

HTML üzerinden veri çekmek için öncelikle Beautiful Soup kütüphanesini kullanacağız. Beautiful Soup, HTML ve XML belgelerini ayrıştırarak içlerindeki verileri daha kolay bir biçimde elde etmemizi sağlar. Bu kütüphane, özellikle web scraping (web’den veri çekme) işlemlerinde yaygın olarak kullanılmaktadır. Başlamak için, öncelikle Beautiful Soup ve requests kütüphanelerini yüklememiz gerekiyor:

pip install beautifulsoup4 requests

HTML’den veri çekmek için kullanacağımız temel bir örnek kod şu şekildedir:

import requests
from bs4 import BeautifulSoup

url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# Örnek: Sayfadaki tabloyu çekme
my_table = soup.find('table')
rows = my_table.find_all('tr')

Bu kodda, belirttiğimiz URL’den HTML içeriğini alıyor ve Beautiful Soup ile sayfayı ayrıştırıyoruz. Daha sonra, sayfadaki tabloyu bulup satırlarını alıyoruz. Çektiğimiz verileri daha sonra CSV formatına dönüştürmeye hazırlamak için bu satırları döngüye alabiliriz. Bu aşama, verinin düzenli bir şekilde toplanması açısından kritik öneme sahiptir.

Verileri CSV Formatına Dönüştürme

Verileri HTML tablosundan çektikten sonra, bu verileri CSV formatına dönüştürmek için Pandas kütüphanesini kullanacağız. Pandas, veri manipülasyonu ve analizi için güçlü bir araçtır ve DataFrame yapısı, verileri tabular formatta kolayca saklamamıza olanak tanır. Eğer Pandas kütüphanesini henüz yüklemediyseniz, aşağıdaki komut ile yükleyebilirsiniz:

pip install pandas

HTML’den çektiğimiz verileri CSV dosyasına yazmak için aşağıdaki adımları takip edebiliriz. Öncelikle, satır ve hücreleri elde edelim:

import pandas as pd

data = []
for row in rows:
    cols = row.find_all('td')  # Sütunları al
    cols = [ele.text.strip() for ele in cols]  # Metinleri temizle
    data.append([ele for ele in cols if ele])  # Boş elemanları çıkar

# DataFrame oluşturma
columns = ['Column1', 'Column2', 'Column3']  # Sütun isimlerini belirle

df = pd.DataFrame(data, columns=columns)

Yukarıdaki kodda, her satırdaki hücrelerin verilerini alıyoruz ve bunları bir listeye ekliyoruz. Daha sonra bu listeyi Pandas DataFrame’ine dönüştürüyoruz. Son olarak, DataFrame nesnesini CSV dosyası olarak kaydedelim:

df.to_csv('output.csv', index=False)

Bu kod ile elde edilen CSV dosyası, ‘output.csv’ ismiyle çalışma dizinimize kaydedilecektir. CSV dosyalamanız başarıyla tamamlandığına göre, artık HTML sayfanızdaki verileri etkili bir şekilde CSV formatına dönüştürdünüz demektir.

Karşılaşılabilecek Hatalar ve Çözümleri

HTML’den veri çekerken ve CSV’ye dönüştürürken bazı yaygın hatalarla karşılaşabilirsiniz. Bu hataları anlamak ve çözmek, sürecin sorunsuz ilerlemesi açısından oldukça önemlidir.

Örneğin, eğer belirttiğiniz HTML elemanını bulamazsanız, NoneType hatası alabilirsiniz. Bunun önüne geçmek için, her elemanı bulmadan önce mevcut olup olmadığını kontrol edebilirsiniz:

my_table = soup.find('table')
if my_table is None:
    print('Tablo bulunamadı!')
else:
    rows = my_table.find_all('tr')

Başka bir yaygın hata ise, boş hücrelerle ilgili olabilir. DataFrame oluşturulmadan önce boş hücrelerin çıkarılmasını sağlamak için, listeleme işlemi sırasında sadece boş olmayan elemanları almayı unutmayın. Bu işleme ek olarak, verinin tipini kontrol etmek de yararlı olabilir:

cols = [ele.text.strip() for ele in cols if ele]
if len(cols) < expected_length:
    print('Satırda beklenen sütun sayısı bulunamadı!')

Ayrıca, CSV’ye yazma sırasında eğer dosya yazma izinleriyle ilgili sorunlar yaşarsanız, dosyanın kaydedileceği dizinin yazılabilir olduğundan emin olun. Bu tür hatalar, genellikle ortamın izinleriyle ilgili olabilmektedir.

Sonuç

Bu yazıda, Python ile HTML verilerini CSV formatına dönüştürmenin adımlarını ayrıntılı bir şekilde ele aldık. Beautiful Soup kütüphanesi ile HTML içeriğini ayrıştırdık, çektiğimiz verileri Pandas kullanarak düzenledik ve sonunda bunları CSV dosyası olarak kaydettik. Bu süreç, özellikle veri analizi ve işleme aşamalarında önemli bir yere sahiptir.

Veri dönüştürme işlemleri, veri bilimi ve makine öğrenimi projeleri için temel bir yetenek haline gelmiştir. Python’un güçlü kütüphaneleri sayesinde, verileri etkin bir şekilde yönetmek ve analiz etmek çok daha kolay hale geliyor. Ayrıca, bu süreçte hata yönetimi ve veri temizliği gibi konulara özen göstermek de problemi çözme yetisini artırmak için kritik öneme sahiptir.

Umarım bu rehber, HTML verilerinizi CSV’ye dönüştürme konusunda faydalı olmuştur. Kendi projelerinizde bu teknikleri kullanarak veri dönüşüm süreçlerinizi kolaylaştırabilir ve verimliliğinizi artırabilirsiniz. Herhangi bir sorunuz veya eklemek istedikleriniz varsa, lütfen yorumlarda belirtin. Deneyimlerinizi ve sorularınızı öğrenmekten memnuniyet duyarım!

Scroll to Top