PYTHON 幫助

使用 Python 中的 BeautifulSoup 進行網頁爬蟲

發佈 2024年7月1日
分享:

Python 開發人員現在可以藉由結合 Beautiful Soup 和 IronPDF 來創建動態 PDF 並簡化網頁爬蟲。 開發人員可以使用以解析 HTML 和 XML 文件聞名的 Beautiful Soup,輕鬆且精確地從網絡資源中提取所有數據。 與此同時,IronPDF 是一個強大的工具,具有順暢的整合和穩固的功能,可以用於以編程方式生成 PDF 文件。

結合這兩個強大的工具,開發人員可以自動化生成發票、檔案內容和生成報告等流程,以無可比擬的效率完成工作。 在本次入門探討中,我們將深入研究 Beautiful Soup Python 函式庫和 IronPDF,強調它們各自的優點及結合後的革命性潛力。 讓我們一起探索透過充分利用網路爬蟲和PDF創建為Python開發者帶來的機會。

篩選湯Python(適用於開發者的工作原理):圖1 - 篩選湯首頁

HTML/XML 解析

Beautiful Soup非常擅長解析HTML標籤和XML文件,將它們轉換為可操控的解析樹以供探索。 它能輕鬆處理不正確的HTML元素,因此開發者可以在面對不完整數據時不必擔心解析問題。

在 HTML 頁面上尋找特定項目

Beautiful Soup 的用戶友好導航技術使得在 HTML 頁面上查找特定項目變得簡單。 使用像 searchfind_allselect 這樣的技術,開發人員可以導航樹狀結構,並根據標籤、屬性或 CSS 選擇器精確定位元素。

訪問標籤特性和內容

Beautiful Soup 提供了簡便的方法來檢索元素的特性和內容,一旦它已被定位在解析樹中。 開發人員可以獲取與標籤相關的任何自定義屬性,以及 href 屬性和其他諸如 classid 的屬性。 若需進一步處理,他們還可以訪問元素的內部 HTML 元素或文本內容。

搜尋與篩選

Beautiful Soup 提供強大的搜尋和過濾功能,使開發者能依據不同標準找到所需的組件。 他們還可以使用正則表達式來匹配更複雜的模式。 他們可以搜尋特定的標籤,並根據特性或 CSS 類別過濾項目。 您可以使用 requests 庫來獲取網頁以進行解析,從而進一步精簡此過程。 這種靈活性使得能夠從 HTML/XML 文件中提取特定數據得以實現。

導航解析樹

在文件結構中,開發人員可以在解析樹中向上、向下和橫向移動。 使用 Beautiful Soup 可以訪問父元素、兄弟姐妹元素和子元素,這使得詳細探索文檔層次結構變得更加容易。

資料提取

Beautiful Soup 的基本功能是從 HTML 和 XML 文本中提取數據的能力。 開發人員可以輕鬆從網頁中提取文字、連結、照片、表格和其他內容項目。 透過結合導航、篩選和遍歷演算法,他們可以從複雜的文件中提取特定的數據點或整塊內容。

處理編碼和實體

Beautiful Soup 自動處理字符編碼和 HTML 網頁實體,確保即使在編碼問題或特殊字符的情況下,也能準確處理文本數據。 此功能透過消除實體解碼或手動編碼轉換的需求,使處理來自各種來源的網頁內容變得更輕鬆。

解析樹修改

Beautiful Soup不僅有助於提取,還允許開發人員動態更改解析樹。 根據需求,他們可以重組文件的結構,添加、刪除或更改標籤和屬性,或添加新元素。 此功能使得可以在文檔中進行操作,如數據清理、內容增強和結構更改。

建立並配置Beautiful Soup for Python

選擇解析器

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

from bs4 import BeautifulSoup
# Specify the parser (e.g., 'lxml' or 'html5lib')
soup = BeautifulSoup(html_content, 'lxml')
PYTHON

設定解析選項

Beautiful Soup 提供了一些選項來改變解析運作的方式。 例如,您可以關閉將 HTML 實體轉換為 Unicode 字元的功能,或啟用更嚴格的解析選項。 當創建 BeautifulSoup 物件時,這些設定將作為參數提供。 這是關閉實體轉換的說明:

from bs4 import BeautifulSoup
# Disable entity conversion
soup = BeautifulSoup(html_content, 'html.parser', convert_entities=False)
PYTHON

編碼檢測

Beautiful Soup會自動嘗試判斷文件的編碼。 但是,有時候,特別是在內容不清楚或有編碼問題時,您可能需要明確地指定編碼。 創建 BeautifulSoup 對象時,您可以選擇定義編碼:

from bs4 import BeautifulSoup
# Specify the encoding (e.g., 'utf-8')
soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8')
PYTHON

輸出格式

預設情況下,Beautiful Soup 會在解析的內容中加入換行和縮排,以方便閱讀。 另一方面,在構建BeautifulSoup對象時,您可以給出formatter選項來改變輸出格式。 例如,關閉美觀打印:

from bs4 import BeautifulSoup
# Disable pretty-printing
soup = BeautifulSoup(html_content, 'html.parser', formatter=None)
PYTHON

NavigableStringTag 子類別

您可以更改 Beautiful Soup 用於 NavigableStringTag 物件的類別。 這可以幫助擴展 Beautiful Soup 的功能或將其與其他庫整合。 在構建 BeautifulSoup 對象時,你可以將 NavigableStringTag 的子類作為參數傳入。

入門

什麼是 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 
pip install ironpdf

匯入庫件

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

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></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('body').text
print('Title:', title)
print('Content:', content)
PYTHON

使用 IronPDF 生成 PDF

現在讓我們利用IronPDF來創建一個包含已提取數據的PDF文件。

from ironpdfpdf import IronPdf, ChromePdfRenderer

# Initialize IronPDF
# Create a new PDF document
pdf = IronPdf()
# Add title and content to the 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 捆綁套裝的價格合理,並附有終身許可證。 由於此套件僅售 $749,是一次性支付適用於多個系統,因此提供極佳的價值。 許可證持有者可以全天候訪問線上工程支持。 如需更多關於費用的資訊,請造訪網站。若要了解更多Iron Software的產品,請訪問該網站。

< 上一頁
在 Python 中使用 Tenacity 重试功能
下一個 >
使用 Python 進行分佈式計算

準備開始了嗎? 版本: 2024.11.1 剛剛發布

免費 pip 安裝 查看許可證 >