簡介
抓取由JavaScript 產生的動態內容可能會帶來挑戰,因為它的非同步性質。此內容不會出現在傳統 HTTP 請求檢索的 HTML 來源中。
解決方案
要存取 JavaScript 產生的內容,我們需要一個可以在其中執行 JavaScript 的解決方案我們的Python程式碼。這裡有兩種推薦的方法:
1. Selenium 與 PhantomJS
Selenium 是一個 Python 函式庫,讓我們可以控制 Web 瀏覽器。透過使用 PhantomJS(無頭瀏覽器),我們可以執行 JavaScript 程式碼並檢索渲染的內容。
範例:
from selenium import webdriver driver = webdriver.PhantomJS() driver.get(my_url) p_element = driver.find_element_by_id(id_='intro-text') print(p_element.text)
2. Dryscrape
Dryscrape 是一個PytScript 隨身碟的網站而設計。它提供了一個可以執行 JavaScript 並檢索 DOM 的無頭瀏覽器。
範例:
import dryscrape from bs4 import BeautifulSoup session = dryscrape.Session() session.visit(my_url) response = session.body() soup = BeautifulSoup(response) soup.find(id="intro-text")
透過這些解決方案,您可以存取 JavaScript 產生的動態內容並繼續您的網頁抓取任務。
以上是如何使用 Python 抓取動態 JavaScript 內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!