Altbilgi içeriğine atla
PYTHON YARDıM

Python'da BeautifulSoup ile Web Tırmalama

Python geliştiricileri artık Beautiful Soup ve IronPDF kombinasyonu sayesinde dinamik PDF'ler oluşturup web kazımayı düzgünleştirebilir. Geliştiriciler, HTML ve XML dosyalarını parçalarken gösterdiği beceri ile tanınan Beautiful Soup ile web kaynaklarındaki tüm verileri kolayca ve doğru bir şekilde çıkarabilir. Bu arada, IronPDF, programatik olarak PDF belgeleri oluşturmak için sorunsuz entegrasyona ve sağlam yeteneklere sahip güçlü bir araçtır.

Bu iki güçlü araç bir araya geldiğinde, geliştiricilerin faturalar oluşturma, içerik arşivleme ve rapor oluşturma gibi süreçleri benzeri görülmemiş bir verimlilikle otomatikleştirmesine olanak tanır. Bu tanıtıcı incelemede, Beautiful Soup Python kütüphanesinin ve IronPDF'in inceliklerine dalacak, hem ayrı avantajlarını hem de birleştiğinde devrim niteliğindeki potansiyelini vurgulayacağız. Web kazıma ve PDF oluşturma işlevselliğini tam anlamıyla kullanarak Python geliştiricilerini bekleyen fırsatları keşfederken bizimle gelin.

Beautiful Soup Python (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Beautiful Soup anasayfası

HTML/XML Ayrıştırma

Beautiful Soup, HTML etiketlerini ve XML belgelerini ayrıştırmakta çok başarılıdır ve bunları araştırılabilir ayrıştırma ağaçlarına dönüştürür. Eksik verilerle ilgili endişelenmeden, geliştiricilerin parçalama sorunları olmadan çalışabilmesi için yanlış HTML unsurlarını nazikçe barındırır.

HTML Sayfasında Özel Öğeleri Bulma

Beautiful Soup'un kullanıcı dostu gezinme teknikleri, HTML sayfasındaki özel öğeleri bulmayı basitleştirir. search, find_all ve select gibi teknikleri kullanarak, geliştiriciler ağaç yapısını gezebilir ve etiketlere, özniteliklere veya CSS seçicilere dayalı olarak öğeleri tam olarak hedefleyebilir.

Etiket Özelliklerine ve İçeriklerine Erişme

Beautiful Soup, bulunduğu zaman bir elementin özelliklerini ve içeriklerini almak için kolay yöntemler sağlar. Geliştiriciler, etikete bağlı herhangi bir özel özniteliği, href özniteliği ve class ve id gibi diğerlerini elde edebilir. İlave işlem için, bir elementin iç HTML elemanına veya metin içeriğine de erişebilirler.

Arama ve Filtreleme

Beautiful Soup, geliştiricilerin çeşitli kriterlere göre bileşenleri bulmalarını sağlayan güçlü arama ve filtreleme özelliklerine sahiptir. Daha karmaşık eşleşme kalıpları için de düzenli ifadeler kullanabilirler. Belirli etiketleri arayabilir ve öğeleri özelliklere veya CSS sınıflarına göre filtreleyebilirler. Bu işlemi kolaylaştırmak için, web sayfalarını ayrıştırma için almak amacıyla requests kütüphanesini kullanabilirsiniz. HTML/XML belgelerinden belirli verileri çıkarmanın esnekliği bu işlevsellikle sağlanır.

Ayrıştırma Ağacında Gezinme

Geliştiriciler, belge yapısı içinde, ayrıştırma ağacında yukarı, aşağı ve yana doğru hareket edebilir. Beautiful Soup, ebeveyn, kardeş ve çocuk elementlere erişim sağlar, bu da belge hiyerarşisini detaylı olarak keşfetmeyi kolaylaştırır.

Veri Çıkarma

Beautiful Soup'un temel işlevi, HTML ve XML metinlerinden veri çıkarmaktır. Geliştiriciler, web sayfalarından kolayca metin, bağlantı, fotoğraf, tablo ve diğer içerik öğelerini çıkarabilirler. Navigasyon, filtreleme ve geçiş algoritmalarını entegre ederek karmaşık belgelerden belirli veri noktalarını veya içerik bölümlerini tam olarak çıkarabilirler.

Kodlamalar ve Varlıklarla İlgilenme

Beautiful Soup, karakter kodlamaları ve HTML web varlıklarıyla otomatik olarak ilgilenir, böylece kodlama sorunları veya özel karakterlere rağmen metin verileri doğru şekilde işlenir. Bu özellik, farklı kaynaklardan gelen web materyaliyle çalışmayı daha kolay hale getirir ve varlık kod çözme veya manuel kodlama dönüştürme gereksinimini ortadan kaldırır.

Ayrıştırma Ağacı Değiştirme

Beautiful Soup sadece veri eklemeyi kolaylaştırmaz, geliştiricilerin dinamik olarak ayrıştırma ağacını değiştirmesine de olanak tanır. Gerektiğinde, belgenin yapısını yeniden düzenleyebilir, etiketleri ve özellikleri ekleyip çıkarabilir veya değiştirebilir veya yeni öğeler ekleyebilirler. Bu özellik, belge içerisinde veri temizleme, içerik artırma ve yapısal değişiklik gibi işlemlerin yapılmasını sağlar.

Python için Beautiful Soup Oluşturun ve Yapılandırın

Ayrıştırıcı Seçme

HTML veya XML belgelerini işlemek için Beautiful Soup'un bir ayrıştırıcıya ihtiyaçı vardır. Varsayılan olarak Python'un yerleşik html.parser kullanır. Daha iyi verimlilik veya spesifik belgelerle daha fazla uyumluluk için, lxml veya html5lib gibi farklı ayrıştırıcılar belirtebilirsiniz. BeautifulSoup nesnesi oluşturma sürecinde, ayrıştırıcıyı sağlayabilirsiniz:

from bs4 import BeautifulSoup

# Specify the parser (e.g., 'lxml' or 'html5lib')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'lxml')
from bs4 import BeautifulSoup

# Specify the parser (e.g., 'lxml' or 'html5lib')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'lxml')
PYTHON

Ayrıştırma Seçeneklerini Ayarlama

Beautiful Soup, ayrıştırmanın nasıl çalışacağını değiştirme seçenekleri sunar. Örneğin, HTML varlıklarını Unicode karakterlerine dönüştüren işlevleri devre dışı bırakabilir veya daha sıkı bir ayrıştırma seçeneğini etkinleştirebilirsiniz. BeautifulSoup nesnesi oluşturulduğunda, bu ayarlar argümanlar olarak sağlanır. Varlık dönüşümünü devre dışı bırakmanın bir örneği:

from bs4 import BeautifulSoup

# Disable entity conversion
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', convert_entities=False)
from bs4 import BeautifulSoup

# Disable entity conversion
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', convert_entities=False)
PYTHON

Kodlama Algılama

Beautiful Soup, belgenin kodlamasını belirlemek için otomatik bir çaba gösterir. Ancak bazen, özellikle içerik belirsiz olduğunda veya kodlama sorunları olduğunda, kodlamayı açıkça belirtmeniz gerekebilir. BeautifulSoup nesnesini oluştururken, kodlamayı tanımlama seçeneğine sahipsiniz:

from bs4 import BeautifulSoup

# Specify the encoding (e.g., 'utf-8')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8')
from bs4 import BeautifulSoup

# Specify the encoding (e.g., 'utf-8')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8')
PYTHON

Çıktı Biçimlendirme

Varsayılan olarak, Beautiful Soup, okunmasını kolaylaştırmak için analiz edilen içeriğe satır sonları ve girintiler ekler. Diğer taraftan, BeautifulSoup nesnesini oluştururken, çıktı formatını değiştirmek için formatter seçeneğini verebilirsiniz. Kapsayarak biçimlendirmeyi kapatmak için bir örnek olarak:

from bs4 import BeautifulSoup

# Disable pretty-printing
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', formatter=None)
from bs4 import BeautifulSoup

# Disable pretty-printing
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', formatter=None)
PYTHON

NavigableString ve Tag Alt Sınıflar

Beautiful Soup'un NavigableString ve Tag nesneleri için hangi sınıfları kullandığını değiştirebilirsiniz. Bu, Beautiful Soup'un yeteneklerini genişletmeye veya başka kütüphanelerle entegre etmeye yardımcı olabilir. BeautifulSoup nesnesini oluşturduğunuzda, NavigableString ve Tag alt sınıflarını parametreler olarak geçebilirsiniz.

Başlarken

IronPDF nedir?

C#, VB.NET ve diğer .NET dillerinde PDF belgelerini programatik olarak üretmek, düzenlemek ve değiştirmek için IronPDF, güçlü bir .NET kütüphanesidir. Geliştiricilere, dinamik olarak yüksek kaliteli PDF'ler oluşturmak için kapsamlı bir özellik seti sunduğundan, birçok uygulama için popüler bir seçenektir.

Beautiful Soup Python (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - IronPDF anasayfası

IronPDF'nin Özellikleri

  • PDF Oluşturma: IronPDF ile geliştiriciler, HTML etiketini, metni, resimleri ve diğer dosya biçimlerini PDF'lere dönüştürebilir veya PDF belgelerinin oluşturulmasına sıfırdan başlayabilir. Bu özellik, dinamik olarak raporlar, faturalar, makbuzlar ve diğer belgeleri oluşturmak için oldukça faydalıdır.
  • HTML'i PDF'ye Dönüştürme: IronPDF, geliştiricilerin HTML yapısını—JavaScript ve CSS stillerini içeren—PDF belgelerine kolayca dönüştürmesini sağlar. Bu, HTML şablonlarından, web sayfalarından ve dinamik olarak oluşturulan materyalden PDF'ler oluşturmayı mümkün kılar.
  • PDF Belgelerini Düzenleme ve Manipüle Etme: IronPDF, mevcut PDF belgeleri için geniş bir düzenleme ve manipülasyon özelliği yelpazesi sunar. Geliştiriciler, PDF'leri ihtiyaçlarına göre değiştirmek için birden fazla PDF dosyasını birleştirebilir, bunları ayrı belgelere bölebilir, sayfaları ayıklayabilir ve yer işaretleri, açıklamalar ve filigranlar ekleyebilir, vb.

Kurulum

Öncelikle IronPDF ve Beautiful Soup'un kurulması gereklidir. Python için paket yöneticisi olan Pip, bu iş için kullanılabilir.

pip install beautifulsoup4 
pip install ironpdf
pip install beautifulsoup4 
pip install ironpdf
SHELL

Kütüphaneleri İçe Aktarma

Ardından, gerekli kütüphaneleri kullanarak Python betiğinizi içe aktarın.

from bs4 import BeautifulSoup
from ironpdf import IronPdf
from bs4 import BeautifulSoup
from ironpdf import IronPdf
PYTHON

Beautiful Soup ile Web Tarama

Bir web sitesinden bilgi çıkarmak için Beautiful Soup'u kullanın. Bir web sayfasından bir makalenin başlığını ve içeriğini almak istediğimizi hayal edin.

# HTML content of the article
html_content = """
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>IronPDF</h1>
<p>This is a sample content of the article.</p>
</body>
</html>
"""
# Create a BeautifulSoup object
soup = BeautifulSoup(html_content, 'html.parser')

# Extract title and content
title = soup.find('title').text
content = soup.find('h1').text + soup.find('p').text

print('Title:', title)
print('Content:', content)
# HTML content of the article
html_content = """
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>IronPDF</h1>
<p>This is a sample content of the article.</p>
</body>
</html>
"""
# Create a BeautifulSoup object
soup = BeautifulSoup(html_content, 'html.parser')

# Extract title and content
title = soup.find('title').text
content = soup.find('h1').text + soup.find('p').text

print('Title:', title)
print('Content:', content)
PYTHON

IronPDF ile PDF Üretimi

Şimdi, alınan verilerle bir PDF belgesi oluşturmak için IronPDF'u kullanalım.

from ironpdf import IronPdf, ChromePdfRenderer

# Initialize IronPDF
# Create a new PDF document
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(
    "<html><head><title>{}</title></head><body><h1>{}</h1><p>{}</p></body></html>".format(title, title, content)
)

# Save the PDF document to a file
pdf.SaveAs("sample_article.pdf")
from ironpdf import IronPdf, ChromePdfRenderer

# Initialize IronPDF
# Create a new PDF document
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(
    "<html><head><title>{}</title></head><body><h1>{}</h1><p>{}</p></body></html>".format(title, title, content)
)

# Save the PDF document to a file
pdf.SaveAs("sample_article.pdf")
PYTHON

Bu betik, örnek makalenin başlığını ve metnini alacak, kazıyacak ve HTML verilerini şu anda geçerli dizine kaydedilecek sample_article.pdf adlı bir PDF dosyası olarak depolayacaktır.

Beautiful Soup Python (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - Yukarıdaki koddan örnek çıktı

Sonuç

Sonuç olarak, veri çıkarmayı ve belge oluşturma iş akışını optimize etmek isteyen geliştiriciler, Beautiful Soup Python ve IronPDF'in güçlü bir birleşimini bulacaktır. IronPDF'in güçlü özellikleri, profesyonel düzeyde PDF belgelerinin dinamik üretimini mümkün kılarken, Beautiful Soup'un kolaylıkla parçalayıcı yetenekleri, web kaynaklarından yararlı verilerin çıkarılmasını sağlar.

Birleştiğinde, bu iki kütüphane, geliştiricilere faturalar, raporlar oluşturma ve web tarama gibi çeşitli operasyonları otomatikleştirmek için ihtiyaç duydukları kaynakları sunar. Beautiful Soup ve IronPDF'in işbirliği, geliştiricilerin karmaşık HTML kodundan veri çıkarmaktan, anında özelleştirilmiş PDF yayınları oluşturmaya kadar hedeflerini hızlı ve etkili bir şekilde gerçekleştirmelerini sağlar.

IronPDF, bir pakette satın alındığında makul bir şekilde fiyatlandırılmış ve ömür boyu lisansla birlikte gelir. Paket yalnızca $799 maliyetinde olduğundan ve bu birden çok sistem için tek seferlik bir ödeme olduğundan, mükemmel bir değer sunar. Lisans sahipleri, günün her saati online mühendislik desteğine erişebilir. Ücretle ilgili ek bilgi için lütfen web sitesini ziyaret edin. Iron Software'in teklifleri hakkında daha fazla bilgi almak için bu web sitesine gidin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara