跳至頁尾內容
PYTHON 幫助

using BeautifulSoup 在 Python 中的 Web 抓取

Python開發者現在可以藉由結合Beautiful Soup和IronPDF來建立動態PDF並簡化網頁爬蟲的過程。 開發者可以輕鬆又精確地從網頁來源提取所有資料,尤其是Beautiful Soup在解析HTML和XML文件方面的技能廣為人知。 與此同時,IronPDF是一個強大的工具,具有流暢的整合和穩固的功能,可以用來程式化地生成PDF文件。

這兩個強大的工具結合在一起,使開發者能夠自動化諸如建立發票、存檔內容和生成報告等流程,效率無可匹敵。 在這份入門檢視中,我們將深入探討Beautiful Soup的Python程式庫和IronPDF,並著重介紹它們各自的優點以及結合時的革命性潛力。 加入我們,一同探索通過充分使用網頁爬蟲和PDF建立來對Python開發者敞開的機會。

Beautiful Soup Python(適合開發者的運作方式):圖1 - Beautiful Soup主頁

HTML/XML解析

Beautiful Soup非常擅長解析HTML標籤和XML文件,將它們轉化為可操作的解析樹,供探索使用。 它體貼地處理不正確的HTML元素,因此開發者可以在不擔心解析問題的情況下處理不完整的資料。

在HTML頁面上尋找特定項目

Beautiful Soup的使用者友好導航技術使在HTML頁面上找到特定項目變得簡單。 使用技術如select,開發者可以導航樹結構,根據標籤、屬性或CSS選擇器精確定位元素。

存取標籤特性和內容

一旦在解析樹中定位到元素,Beautiful Soup提供了簡便的方法來檢索其特性和值內容。 開發者可以獲得與標籤相關的任何自定義屬性,以及id等其他屬性。 為了進一步處理,他們還可以存取元素的內部HTML元素或文字內容。

搜尋與篩選

Beautiful Soup有強大的搜尋和篩選功能,允許開發者按照不同的標準來定位元件。 他們還可以使用正則表達式進行更複雜的匹配模式。 他們可以搜尋特定的標籤,並依據特徵或CSS類篩選項目。 您可以進一步精簡此過程,使用requests庫來獲取網頁進行解析。 靈活性促進了從HTML/XML文件中提取特定資料的能力。

導航解析樹

在文件結構中,開發者可以在解析樹中上下左右移動。 Beautiful Soup使得存取父級、同級和子級元素成為可能,從而更容易詳細地探索文件的層次結構。

資料提取

Beautiful Soup的一個基礎功能是能夠從HTML和XML文字中提取資料。 開發者可以從網頁中輕鬆提取文字、連結、照片、表格和其他內容項。 從複雜的文件中,他們可以通過整合導航、篩選和遍歷算法提取某些資料點或整個內容塊。

處理編碼與實體

Beautiful Soup自動處理字元編碼和HTML網頁實體,確保即使在編碼問題或特殊字元存在的情況下,文字資料也能準確處理。 此功能使更方便地處理來自不同來源的網頁材料,無需進行實體解碼或手動編碼轉換。

解析樹修改

Beautiful Soup不僅促進了提取,還允許開發者動態更改解析樹。 他們可以根據需要重構文件的結構、新增、移除或修改標籤和屬性,或者新增新元素。 此功能使在文件內進行操作成為可能,例如資料清理、內容增強和結構改造。

建立並配置用於Python的Beautiful Soup

選擇解析器

要處理HTML或XML文件,Beautiful Soup需要一個解析器。 它預設使用Python內建的html.parser。 為了更高的效率或更多與特定文件的相容性,您可以指定不同的解析器,如html5lib。 在構建BeautifulSoup對像的過程中,您可以提供解析器:

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

設定解析選項

Beautiful Soup提供了一些選項來更改解析的運作方式。 例如,您可以關閉將HTML實體轉換為Unicode字元的功能或激活更嚴格的解析選項。 當BeautifulSoup對像被建立時,這些設置作為參數提供。 這是一個如何關閉實體轉換的範例:

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

編碼檢測

Beautiful Soup會自動努力確定文件的編碼。 但偶爾,特別是當內容不清楚或存在編碼問題時,您可能需要明確指出編碼。 在建立BeautifulSoup物件時,您可以選擇定義編碼:

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

輸出格式化

Beautiful Soup預設會在解析出的內容中新增換行符和縮排,以便於閱讀。 另一方面,當構造formatter選項來改變輸出格式。 例如,關閉美化印刷:

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

Tag子類

您可以更改Beautiful Soup用於Tag對像的類。 這可能有助於擴展Beautiful Soup的功能或將其與其他庫整合。 在構造Tag的子類。

入門

什麼是IronPDF?

IronPDF是一個強大的.NET程式庫,用於在C#、VB.NET和其他.NET語言中程式化生成、編輯和修改PDF文件。 由於它提供了豐富的功能集來動態建立高品質的PDF,因此它是許多應用程式的熱門選擇。

Beautiful Soup Python(適合開發者的運作方式):圖2 - IronPDF主頁

IronPDF的特徵

  • PDF生成:使用IronPDF,開發者可以將HTML標籤、文字、圖片及其他文件格式轉換為PDF,或全新建立PDF文件。 此功能對於動態建立報告、發票、收據和其他文件非常有用。
  • 轉換HTML為PDF:IronPDF允許開發者輕鬆地將HTML結構——包括JavaScript和CSS樣式——轉換為PDF文件。 這使得可以從HTML模板、網頁和動態建立的素材中生成PDF。
  • 編輯和操作PDF文件:IronPDF為現有的PDF文件提供了廣泛的編輯和操作功能。 開發者可以合併多個PDF文件,將其分割為不同文件,提取頁面,並新增書籤、註解和浮水印等,來按照他們的規格修改PDF文件。

安裝

首先必須安裝IronPDF和Beautiful Soup。這可以使用Python的包管理器Pip來完成。

pip install beautifulsoup4 ironpdf

導入程式庫

然後,使用所需的程式庫導入您的Python腳本。

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

使用Beautiful Soup進行網頁爬蟲

使用Beautiful Soup從網站中提取資訊。想像一下,我們希望從一個網頁中獲取一篇文章的標題和內容。

# 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生成PDF

接下來,我們使用IronPDF來建立帶有提取資料的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")
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

這個腳本將採用範例文章的標題和文字,進行抓取,並將HTML資料儲存為一個名為sample_article.pdf的PDF文件,該文件將字存在當前目錄中。

Beautiful Soup Python(適合開發者的運作方式):圖3 - 上述程式碼的範例輸出

結論

總而言之,尋求優化其資料提取和文件建立工作流的開發者會發現Beautiful Soup Python和IronPDF的結合是非常有力的。 IronPDF的強大功能使專業級PDF文件的動態生成成為可能,而Beautiful Soup無縫的解析能力使得從網頁來源提取有用資料變得容易。

這兩個程式庫結合起來,為開發者提供了自動化多種作業所需的資源,包括建立發票、報告和網頁爬蟲。 Beautiful Soup與IronPDF的合作,使開發者無論是在提取復雜的HTML程式碼中的資料,還是即時建立定制化的PDF文件,都能快速有效地達成目標。

IronPDF以合理的價格出售,並以終身授權形式提供。 由於該套餐僅需一次性支付$999的費用,即可覆蓋多個系統,因此十分划算。 授權持有者可以全天候存取線上工程支援。 如需了解費用的更多資訊,請存取網站。想了解更多有關Iron Software的產品,請存取此網站。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話