如何使用Python 從動態HTML 內容中擷取值
當嘗試從動態載入內容的網站擷取資料時,傳統方法使用Python的請求或BeautifulSoup 庫可能會失敗。這是因為這些函式庫不會解釋產生資料的 JavaScript 程式碼。
理解問題
在提供的範例中,相關頁面使用 Handlebars 範本來建立動態內容。使用瀏覽器的開發者工具檢查 HTML 原始碼時,您可能會發現類似「{{formatPricemedian}}」的範本佔位符,而不是實際值。
解決方案
要從動態產生的內容中檢索實際值,您需要使用解釋 JavaScript 的技術。考慮以下選項:
將Selenium 與BeautifulSoup 結合使用
範例頁( eve-central.com),使用Selenium 擷取「中位數」值:
<code class="python">from bs4 import BeautifulSoup from selenium import webdriver driver = webdriver.Firefox() driver.get('http://eve-central.com/home/quicklook.html?typeid=34') html = driver.page_source soup = BeautifulSoup(html) for tag in soup.find_all('span', class_="a-price-amount"): print(tag.text)</code>
此程式碼使用Selenium 載入頁面,使用BeautifulSoup 解析渲染的HTML,提取具有特定類別ID 的標籤和列印其文字內容,其中包括所需的「中位數」值。
以上是Python 如何從動態產生的 HTML 內容中檢索值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!