Python ile XML Verilerini BeautifulSoup ile İşleme

Giriş

XML (eXtensible Markup Language) verileri, veri depolamak ve taşımak için yaygın olarak kullanılan bir format olup, hem insan hem de makine tarafından okunabilir. Python, XML verilerini işlerken ihtiyaç duyulan esnekliği ve gücü sunan zengin bir kütüphane ekosistemine sahiptir. Bu yazıda, Python’da XML verilerini BeautifulSoup kütüphanesi kullanarak nasıl etkili bir şekilde işleyebileceğinizi adım adım keşfedeceğiz.

BeautifulSoup, web sayfalarındaki HTML ve XML içeriğini parse etmek için tercih edilen bir Python kütüphanesidir. Kullanımı kolay bir arayüze sahip olması, verileri daha anlaşılır hale getirmesi ve karmaşık yapıları kolayca işlemesi nedeniyle sıklıkla tercih edilir. XML dosyalarınızda veri çıkarmak, düzenlemek veya yeni veriler eklemek gibi işlemleri gerçekleştirmek için gelin BeautifulSoup’un özelliklerine bir göz atalım.

BeautifulSoup’a Giriş

BeautifulSoup kullanmaya başlamadan önce, öncelikle onu sisteminize kurmanız gerekmektedir. Terminal veya komut istemcisinde aşağıdaki komutu çalıştırarak BeautifulSoup ve lxml gibi gerekli kütüphaneleri yükleyebilirsiniz:

pip install beautifulsoup4 lxml

Kurulum tamamlandıktan sonra, XML verilerinizi analiz etmek için BeautifulSoup ile bir Python programı yazmaya hazırsınız. İlgili kütüphaneleri içe aktararak başlayalım:

from bs4 import BeautifulSoup

Bu yazıda örnek olarak bir XML dosyasına ulaşacak ve içeriklerini nasıl işleyeceğimize odaklanacağız. Aşağıda bir örnek XML yapısının nasıl oluşturulacağını görebilirsiniz:

<kitaplar>
    <kitap>
        <baslik>Python Programlama</baslik>
        <yazar>Ege Korkmaz</yazar>
        <yil>2023</yil>
    </kitap>
    <kitap>
        <baslik>Veri Bilimi ile Tanışma</baslik>
        <yazar>Ayşe Yılmaz</yazar>
        <yil>2022</yil>
    </kitap>
</kitaplar>

XML Parse Etmek

Artık BeautifulSoup kullanarak yukarıda tanımladığımız XML verilerimizi nasıl parse edeceğimizi görelim. Bu bölümde, bir dosyayı okuma ve içeriği parse etme sürecini ele alacağız.

Aşağıdaki kod, bir XML dosyasını okuyup verilerini BeautifulSoup ile işlemektedir:

with open('kitaplar.xml', 'r', encoding='utf-8') as file:
    xml_content = file.read()

soup = BeautifulSoup(xml_content, 'xml')

Burada, `kitaplar.xml` adlı bir dosya okuyoruz ve içeriğini BeautifulSoup ile `soup` adlı bir nesneye alıyoruz. ‘xml’ seçeneğini kullanarak verimizi XML formatında parse ettik. Bu şekilde, verilerle daha kolay çalışabileceğiz.

Verilere Erişim

Artık XML verilerimizi parse ettiğimize göre içinden veri çekmeye başlayabiliriz. Örneğin, tüm kitap başlıklarını nasıl alabileceğimizi göreceğiz:

for kitap in soup.find_all('kitap'):
    baslik = kitap.find('baslik').text
    print(baslik)

Yukarıdaki kod, XML’de bulunan tüm kitapları döngüye alır ve her birinden başlık bilgilerini çeker. Sonuç olarak kitabın başlıkları çıktıda listelenecektir.

Örnek çıktımız şöyle olacaktır:

Python Programlama
Veri Bilimi ile Tanışma

Bu şekilde, BeautifulSoup ile XML’den verileri çekerek yazılımlarımızda kullanabileceğimiz forma getirmiş oluyoruz. İçerisindeki diğer elemanlara da benzer bir yöntemle erişebiliriz.

Veri Düzenleme ve Güncelleme

BeautifulSoup ile sadece veri çekmekle kalmayıp aynı zamanda mevcut verileri de güncelleyebiliriz. Örneğin, yazar adı bilgilerini değiştirmek isteyebilirsiniz. Bunun için aşağıdaki yöntemi izleyebilirsiniz:

for kitap in soup.find_all('kitap'):
    yazar = kitap.find('yazar')
    if yazar.text == 'Ege Korkmaz':
        yazar.string = 'Muhammed Ali'

Bu kod parçası, yazar bilgisi ‘Ege Korkmaz’ olan kitabın yazar adını ‘Muhammed Ali’ olarak günceller. Güncelleme işlemini yaparken specific bir koşul belirleyerek ilerliyoruz.

Daha sonra güncellenmiş XML içeriğini bir dosyaya kaydetmek için yazma işlemini uygulayabiliriz:

with open('guncellenmis_kitaplar.xml', 'w', encoding='utf-8') as file:
    file.write(str(soup))

Böylece, güncellediğimiz veriler yeni bir XML dosyasına yazılmış olacaktır. Bu işlemlerle birlikte verilerinizi dilediğiniz gibi güncelleyebilir ve yönetebilirsiniz.

XML’den JSON’a Dönüştürme

XML verilerini işlerken, bazen bu verilerin JSON formatına dönüştürülmesi gerekebilir. Python’da JSON kütüphanesini kullanarak bu dönüşümü gerçekleştirebiliriz. BeautifulSoup ile parse ettiğimiz verileri bir Python sözlüğüne çevirip, ardından JSON formatına dönüştürebiliriz.

Öncelikle JSON kütüphanesini import ediyoruz:

import json

Ardından verileri bir sözlük haline getirelim ve JSON formatına dönüştürelim:

kitaplar_listesi = []
for kitap in soup.find_all('kitap'):
    kitap_dict = {
        'baslik': kitap.find('baslik').text,
        'yazar': kitap.find('yazar').text,
        'yil': int(kitap.find('yil').text)
    }
    kitaplar_listesi.append(kitap_dict)

json_veri = json.dumps(kitaplar_listesi, ensure_ascii=False, indent=4)

Yukarıdaki kod, XML’deki her kitabı bir sözlük olarak tanımlar ve tüm kitapları bir listeye ekler. Ardından bu listeyi JSON formatına dönüştürerek çıktı almış oluruz.

Sonuç

Bu yazıda, Python’da BeautifulSoup kütüphanesini kullanarak XML verilerini nasıl parse edeceğinizi, verileri nasıl güncelleyip düzenleyeceğinizi ve XML’i JSON formatına nasıl dönüştüreceğinizi öğrendik. BeautifulSoup’un sağladığı kolaylık sayesinde, karmaşık XML verileriyle çalışmak oldukça verimli hale geliyor.

Yazılım geliştirme sürecinde XML verileriyle karşılaştığınızda, bu bilgiler doğrultusunda etkili çözümler üretebilirsiniz. Kendi projelerinizde bu yöntemleri deneyerek, verilerinizle daha derinlemesine etkileşim kurma fırsatını yakalayabilirsiniz.

Unutmayın, yazılım dünyası sürekli olarak gelişiyor. Yeni yöntemler ve araçlar hakkında bilgi sahibi olmak, başarınız için büyük bir avantaj sağlayabilir. Şimdi, öğrendiklerinizi uygulamaya geçirme zamani!

Scroll to Top