1. Ürün:% s
  2.   HTML
  3.   Python
  4.   Beautiful Soup
 
  

HTML/XML'i Ayrıştırmak ve Veri Çıkarmak için Açık Kaynak Python Kütüphanesi

Beautiful Soup, dağınık HTML/XML'i ayrıştıran, metin/bağlantıları çıkaran, ağacı gezinen ve modern web kazıma iş akışlarını destekleyen önde gelen bir açık kaynak Python ayrıştırma kütüphanesidir.

Beautiful Soup nedir?

Web scraping, web sitelerinden değerli bilgiler çıkarması gereken veri bilimcileri, geliştiriciler ve araştırmacılar için vazgeçilmez bir beceri haline geldi. Beautiful Soup, HTML ve XML belgelerini ayrıştırmak için en popüler ve kullanıcı dostu Python kütüphanelerinden biri olarak öne çıkıyor. 2004'te yaratılmasından bu yana, bu güçlü araç programcıların web scraping projelerinde sayısız saat tasarruf etmesini sağladı. Kütüphanenin sezgisel API'si, mükemmel dokümantasyonu ve aktif topluluk desteği, hem yeni başlayanların hem de deneyimli geliştiricilerin web verilerini verimli bir şekilde çıkarmasını garantiler.

Beautiful Soup, HTML ve XML dosyalarından veri çıkarmak için özel olarak tasarlanmış bir Python kütüphanesidir. 2004'ten beri web kazıma projelerinde programcıların saatler ya da günler süren işlerini tasarruf ettiren güçlü bir Python kütüphanesidir. Sadece birkaç satır kodla, basitlik ve kullanım kolaylığı gibi karmaşık sorgular gerçekleştirebilir, tüm bağlantıları bulabilir, metin içeriğini çıkarabilir, otomatik kodlama dönüşümü, ayrıştırıcı esnekliği, sağlam hata yönetimi, web sayfalarından bağlantı arama ve çıkarma ve daha fazlasını yapabilirsiniz.

Beautiful Soup kütüphanesi, HTML ve XML belgelerinden veri çıkarmanın genellikle sinir bozucu görevini, basit bir Pythonik sürece dönüştürür; kötü yapılandırılmış web içeriğini, kolayca gezinebileceğiniz ve basit yöntemlerle arama yapabileceğiniz düzenli parse ağaçlarına dönüştürür. Geleneksel olarak saatler süren manuel kodlamayı gerektiren işler, Beautiful Soup ile dakikalar içinde gerçekleştirilebilir. Web kazıma dünyasına adım atan Python geliştiricileri için endüstri standardı olmaya devam etmektedir. Basitliği, farklı ayrıştırıcıların gücüyle birleştiğinde, statik web sitelerinden veri çıkarmak için rakipsiz bir seçimdir.

Previous Next

Beautiful Soup ile Başlarken

Beautiful Soup'ı kurmanın önerilen ve en kolay yolu pip kullanmaktır. Lütfen aşağıdaki komutu sorunsuz bir kurulum için kullanın.

Beautiful Soup Kütüphanesini pip ile kurun

pip install beautifulsoup4 

Ayrıca manuel olarak da kurabilirsiniz; en son sürüm dosyalarını doğrudan Beautiful Soup web sayfasından indirin.

Birden Çok Ayrıştırıcıyla Çalışma

Beautiful Soup kütüphanesi tüm ayrıştırmayı kendisi yapmaz — bunun yerine, Python'un yerleşik html.parser'ı, hızlı lxml ayrıştırıcısı ve tarayıcı benzeri html5lib gibi olgun ayrıştırıcıların üzerine oturur. İhtiyaca göre hızı mı yoksa standart uyumluluğu mu önceliklendirebilirsiniz. Bu mimari, ihtiyaçlarınıza en uygun ayrıştırıcıyı seçme esnekliği sağlar, ayrıştırma hızını esneklik karşılığında takas etmenize, Beautiful Soup kodunuzu değiştirmeden farklı ayrıştırma stratejilerini denemenize vb. olanak tanır. Aşağıdaki basit kod, geliştiricilerin Beautiful Soup ile farklı ayrıştırıcıları nasıl kullanabileceğini gösterir.

Python Uygulamalarında HTML Belgelerini Ayrıştırmak İçin Birden Fazla Ayrıştırıcı Nasıl Kullanılır?

# Using different parsers with Beautiful Soup
html_doc = "

Örnek içerik

" # Using lxml parser (fast) soup_lxml = BeautifulSoup(html_doc, 'lxml') # Using html5lib parser (slower but more lenient) soup_html5lib = BeautifulSoup(html_doc, 'html5lib') # Using Python's built-in parser soup_builtin = BeautifulSoup(html_doc, 'html.parser')

Web Sayfalarından Bağlantıları Çıkarma

Bağlantı kazıma, özellikle web tarayıcıları oluşturmak için faydalı olan yaygın bir web kazıma görevidir. Açık kaynaklı Beautiful Soup kütüphanesi, Python uygulamaları içinde web sayfalarını yükleme ve bağlantıları çıkarma desteği sağlamaktadır. Aşağıdaki basit kod örneği, requests kütüphanesini kullanarak canlı bir web sayfası almayı ve ardından Python uygulamaları içinde tüm bağlantı (anchor) etiketlerini çıkarmayı göstermektedir.

Python Kullanarak Web Sayfalarından Bağlantılar Nasıl Çıkarılır?

from bs4 import BeautifulSoup
import requests

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

# Extract all links
links = soup.find_all('a')

print(f"Found {len(links)} links:")
for link in links:
    href = link.get('href')
    text = link.get_text().strip()
    print(f"Text: {text} | URL: {href}")

# Filter links by criteria
external_links = []
for link in soup.find_all('a'):
    href = link.get('href')
    if href and href.startswith('http'):
        external_links.append(href)

print(f"\nFound {len(external_links)} external links")

Belirli HTML Öğelerini Arama

Beautiful Soup'un en büyük güçlü yönlerinden biri, HTML'i neredeyse düz İngilizce okuyormuş gibi doğal bir şekilde aramanıza izin vermesidir. Karmaşık DOM API'leriyle uğraşmak yerine, ne istediğinizi tanımlarsınız ve Beautiful Soup sizin için bulur. Diyelim ki bir sayfadaki tüm bağlantıları bulmak istiyorsunuz. Aşağıdaki kod örneğinde gösterildiği gibi find_all metodunu kullanabilirsiniz. Metod, tüm bağlantı etiketlerinin bir listesini döndürür. Daha sonra Python API'sini kullanarak URL'yi ve metni çıkarıp görünür bağlantı adını elde ederiz.

Python API'si ile Web Sayfasından Belirli HTML Öğesini Nasıl Arar ve Çıkarırsınız?

# Extract all anchor tags
links = soup.find_all('a')

for link in links:
    href = link.get('href')
    text = link.text.strip()
    print(f"Text: {text} | URL: {href}")

Otomatik Kodlama İşleme

Beautiful Soup'un en kullanışlı özelliklerinden biri otomatik kodlama dönüşümüdür. Kütüphane gelen belgeleri otomatik olarak Unicode'a ve çıkan belgeleri UTF-8'e dönüştürür, web kazıma sırasında en yaygın baş ağrılarından birini ortadan kaldırır. Lütfen yalnızca belge bir kodlama belirtmediğinde kodlamalar hakkında düşünmeniz gerektiğini unutmayın, çünkü Beautiful Soup kodlamayı otomatik olarak tespit edemez. Bu nadir durumlarda, orijinal kodlamayı manuel olarak belirtmeniz yeterlidir.

 Türkçe