首頁 >後端開發 >Python教學 >如何使用 Python 的 Selenium 和 BeautifulSoup 從動態 HTML 內容中擷取值?

如何使用 Python 的 Selenium 和 BeautifulSoup 從動態 HTML 內容中擷取值?

Linda Hamilton
Linda Hamilton原創
2024-10-19 07:47:011084瀏覽

How to Extract Values from Dynamic HTML Content Using Python's Selenium and BeautifulSoup?

如何使用Python 檢索動態HTML 內容的值

在本次討論中,我們探討了使用Python 抓取動態HTML 內容時遇到的一個常見問題:遇到範本佔位符實際值。具體來說,我們的目標是從使用車把模板的網頁中檢索「中位數」值。

最初,單獨使用 requests 函式庫不會產生所需的結果,因為它無法處理基於 JavaScript 的渲染頁。為了克服這個問題,我們探索了三個主要解決方案:

  • 直接解析 Ajax JSON: 這涉及攔截和解析頁面發送到瀏覽器的 JSON 回應。
  • 使用離線 JavaScript 解釋器:利用 SpiderMonkey 或 crowbar 等工具來處理請求並產生完全渲染的 HTML。
  • 使用瀏覽器自動化工具:利用Selenium 或 Watir 等工具可以自動化瀏覽器,使其能夠處理 JavaScript 並渲染頁面。

在我們的例子中,我們建議將 Selenium 與 BeautifulSoup 結合使用。透過使用Selenium取得渲染的HTML並使用BeautifulSoup對其進行解析,我們可以有效地存取動態HTML內容。下面是一個範例程式碼片段:

<code class="python">from bs4 import BeautifulSoup
from selenium import webdriver

# Get rendered HTML using Selenium
driver = webdriver.Firefox()
driver.get('http://eve-central.com/home/quicklook.html?typeid=34')
html = driver.page_source

# Parse HTML using BeautifulSoup
soup = BeautifulSoup(html)

# Search for specific tags, e.g., those with a "formatPrice median" class
for tag in soup.find_all('formatPrice median'):
    median_value = tag.text</code>

這種方法使我們能夠像真正的瀏覽器一樣導航並與網頁交互,從而使我們能夠獲取必要的數據,即使它是動態加載的。

以上是如何使用 Python 的 Selenium 和 BeautifulSoup 從動態 HTML 內容中擷取值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn