Altbilgi içeriğine atla
PYTHON YARDıM

Python'da BeautifulSoup ile Web Tırmalama

Python geliştiricileri, Beautiful Soup ve IronPDF'nin birleşimi sayesinde artık dinamik PDF'ler oluşturabilir ve web kazıma süreçlerini basitleştirebilir. Geliştiriciler, HTML ve XML dosyalarını ayıklama konusundaki becerisiyle tanınan Beautiful Soup ile web kaynaklarındaki tüm verileri kolayca ve doğru bir şekilde çıkartabilir. Öte yandan, IronPDF, programlı olarak PDF belgeleri oluşturmak için kullanılabilecek sorunsuz entegrasyon ve sağlam yeteneklere sahip güçlü bir araçtır.

Birlikte, bu iki güçlü araç, geliştiricilerin fatura oluşturma, içerik arşivleme ve raporlar üretme gibi işlemleri benzersiz bir verimlilikle otomatikleştirmesine olanak tanır. Bu tanıtıcı incelemede Beautiful Soup Python kütüphanesinin ve IronPDF'nin nüanslarına dalacağız, ayrı ayrı erdemlerini ve bir araya geldiklerinde devrim niteliğindeki potansiyellerini vurgulayarak. Web kazıyıcı ve PDF oluşturmanın tam potansiyelini kullanarak Python geliştiricilerini bekleyen fırsatları keşfederken bize katılın.

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

HTML/XML Ayrıştırma

Beautiful Soup, HTML etiketlerini ve XML belgelerini ayrıştırmada çok iyidir, onları keşfedilebilecek parse ağaçlarına dönüştürür. Eksik HTML öğelerini nazikçe karşılar, böylece geliştiriciler, eksik veri ile uğraşırken ayrıştırma sorunları konusunda endişelenmeden çalışabilir.

HTML Sayfasında Belirli Öğeleri Bulma

Beautiful Soup'un kullanıcı dostu gezinme teknikleri, HTML sayfasında belirli öğeleri bulmayı kolaylaştırır. search, find_all ve select gibi teknikleri kullanarak, geliştiriciler ağaç yapısında gezinebilir ve etiketler, attribüler veya CSS seçicilere dayalı olarak elemanları tam olarak hedefleyebilir.

Etiket Özellikleri ve İçeriğe Erişim

Beautiful Soup, bir elemanın özelliklerine ve içeriğine parse ağacı içinde bulunduğunda kolayca erişme yöntemleri sunar. Geliştiriciler, etikete bağlı herhangi bir özel özniteliği, href özniteliğini ve class ile id gibi diğerlerini elde edebilir. Ek işleme için, elemanın iç HTML elemanı veya metin içeriğine de erişebilirler.

Ara ve Filtreleme

Beautiful Soup, geliştiricilerin çeşitli kriterlere göre bileşenleri bulmasına olanak tanıyan güçlü arama ve filtreleme özelliklerine sahiptir. Daha karmaşık eşleşme kalıpları için düzenli ifadeleri de kullanabilirler. Belirli etiketleri arayabilir ve özelliklere veya CSS sınıflarına dayalı olarak öğeleri filtreleyebilirler. Bu işlemi, ayrıştırma için web sayfalarını getirmek üzere requests kütüphanesi ile daha da sadeleştirebilirsiniz. Bu esneklik, HTML/XML belgelerinden belirli verileri çıkartma yeteneğini kolaylaştırır.

Parse Ağacında Gezinme

Belge yapısı içinde, geliştiriciler parse ağacında yukarı, aşağı ve yanlara hareket edebilirler. Beautiful Soup, ebeveyn, kardeş ve çocuk unsurlarına erişim sağlar, belge hiyerarşisini ayrıntılı bir şekilde keşfetmeyi kolaylaştırır.

Veri Çıkartma

Beautiful Soup'un temel bir işlevi, HTML ve XML metinlerinden veri çıkartma yeteneğidir. Metin, bağlantılar, fotoğraflar, tablolar ve diğer içerik öğeleri geliştiriciler tarafından web sayfalarından kolayca çıkartılabilir. Gezinme, filtreleme ve geçiş algoritmaları birleştirilerek karmaşık belgelerden belirli veri noktaları veya içeriğin tamamı çıkartılabilir.

Encoding ve Varlıklarla İlgilenme

Beautiful Soup, metin verilerini kodlama sorunlarına veya özel karakterlere rağmen doğru bir şekilde işlemeye devam ederek karakter kodlamaları ve HTML web varlıkları ile otomatik olarak ilgilenir. Bu özellik, çeşitli kaynaklardan gelen web içeriğiyle çalışmayı, varlık kod çözme veya manuel kodlama dönüştürme ihtiyacını ortadan kaldırarak kolaylaştırır.

Parse Ağacı Değiştirme

Beautiful Soup yalnızca çıkarımı değil, aynı zamanda geliştiricilere parse ağacını dinamik olarak değiştirme izni de verir. Gerektiğinde, belgenin yapısını yeniden düzenleyebilir, etiketleri ve özellikleri ekleyebilir, kaldırabilir veya değiştirebilir ve yeni öğeler ekleyebilirler. Bu özellik, belge içinde veri temizleme, içerik artırma ve yapısal değişiklik gibi işlemleri gerçekleştirmeyi mümkün kılar.

Beautiful Soup Python için'u oluşturun ve yapılandırın

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

HTML veya XML belgelerini işlemek için Beautiful Soup, bir ayrıştırıcıya ihtiyaç duyar. Varsayılan olarak Python'un yerleşik html.parser'unu kullanır. Belirli belgelerle daha iyi verimlilik veya daha fazla uyumluluk için, lxml veya html5lib gibi farklı ayrıştırıcılar belirleyebilirsiniz. BeautifulSoup nesnesini 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ştirmek için birkaç seçenek sunar. Örneğin, HTML varlıklarını Unicode karakterlere dönüştüren işlevleri kapatabilir 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. İşte varlık dönüşümünü kapatmanı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

Encoding Algılama

Beautiful Soup, belgenin kodlamasını otomatik olarak belirlemek için çaba gösterir. Ancak bazen, özellikle içerik belirsiz olduğunda veya kodlama sorunları olduğunda kodlamayı açıkça belirtmek zorunda kalabilirsiniz. BeautifulSoup nesnesini oluştururken, kodlamayı tanımlama seçeneğiniz vardır:

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ı Formatlama

Varsayılan olarak, Beautiful Soup ayrıştırılmış içeriği okumayı kolaylaştırmak için satır sonları ve girintiler ekler. Diğer yandan, BeautifulSoup nesnesini inşa ederken, çıktı formatını değiştirmek için formatter seçeneğini verebilirsiniz. Pretty-printing'i kapatmanın bir örneği:

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 diğer kütüphanelerle entegre etmeye yardımcı olabilir. BeautifulSoup nesnesini inşa ederken, NavigableString ve Tag'ın alt sınıflarını parametre olarak geçirebilirsiniz.

Başlarken

IronPDF Nedir?

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

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

IronPDF Özellikleri

  • PDF Üretimi: IronPDF ile geliştiriciler, bir HTML etiketi, metni, resimleri ve diğer dosya formatlarını PDF'lere dönüştürebilir veya PDF belgelerinin oluşturulmasını sıfırdan başlatabilir. Bu yetenek, dinamik olarak raporlar, faturalar, makbuzlar ve diğer belgeler oluşturmak için oldukça faydalıdır.
  • HTML'yi PDF'e Dönüştürmek: IronPDF, geliştiricilere CSS tarzları ve JavaScript içeren HTML yapısını kolayca PDF belgelerine dönüştürme olanağı tanır. HTML şablonları, web sayfaları ve dinamik oluşturulmuş içerikten PDF'lerin oluşturulmasını sağlar.
  • PDF Belgelerini Düzenleme ve İşleme: IronPDF, mevcut PDF belgeleri için geniş bir düzenleme ve işleme özelliği yelpazesi sunar. Geliştiriciler, PDF'leri belirledikleri şekilde değiştirmek için birden fazla PDF dosyasını birleştirebilir, onları ayrı belgelere bölebilir, sayfaları çıkarabilir ve bookmark, ek açıklamalar ve filigranlar ekleyebilir.

Kurulum

Öncelikle IronPDF ve Beautiful Soup'un yüklü olması gerekir. Bunun için Python'un paket yöneticisi olan Pip kullanılabilir.

pip install beautifulsoup4 ironpdf

Kütüphanelerin İçe Aktarılması

Ardından, gerekli kütüphanelerle 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 Kazıma

Beautiful Soup'u kullanarak bir web sitesinden bilgi çıkarın. Bir makalenin başlığını ve içeriğini bir web sayfasından çekmek 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, çıkarılan verilerle bir PDF belgesi oluşturmak için IronPDF'yi 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, ayıklayacak ve HTML verilerini sample_article.pdf adlı bir PDF dosyası olarak mevcut dizine kaydedecek.

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

Sonuç

Sonuç olarak, geliştiriciler, veri çıkarımını ve belge oluşturma iş akışlarını optimize etmeye çalışan Beautiful Soup Python ve IronPDF'nin güçlü bir kombinasyonunu bulacaklar. IronPDF'nin sağlam özellikleri, profesyonel kalitede PDF belgelerinin dinamik olarak üretilmesine olanak tanırken, Beautiful Soup'un kolay ayrıştırma becerileri web kaynaklarından faydalı verilerin çıkarılmasına olanak tanır.

Bu iki kütüphane bir araya getirildiğinde, geliştiricilere fatura oluşturma, rapor oluşturma ve web kazıma gibi çeşitli operasyonları otomatikleştirirken ihtiyaç duydukları kaynakları sunar. Beautiful Soup ve IronPDF arasındaki işbirliği, geliştiricilerin ister karmaşık HTML kodlarından veri çıkarmayı, ister anında özelleştirilmiş PDF yayınları oluşturmayı içermeleri fark etmeksizin hedeflerine hızlı ve etkili bir şekilde ulaşmalarını sağlar.

IronPDF, bir paket halinde satın alındığında makul bir fiyat sunar ve ömür boyu lisans ile gelir. Paket sadece $999 maliyetli olduğu için, birçok sistem için tek seferlik bir ödeme ile mükemmel bir değer sunuyor. Lisans sahipleri, çevrimiçi mühendislik desteğine günün her saati erişim sağlayabilirler. Ücret hakkında daha fazla bilgi için lütfen web sitesini ziyaret edin. Iron Software'ın sundukları hakkında daha fazla bilgi almak için bu web sitesine gidin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

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