今天是第十三天,許多現代網站使用JavaScript來動態生成內容,這讓傳統的爬蟲方法變得困難。當發送簡單的HTTP請求時,可能只會得到空白的HTML頁面,因為需要JavaScript執行才能生成所需的內容。今天我們來探討如何抓取這些JavaScript渲染的內容。
為什麼會有JavaScript渲染的內容?
使用前端框架(如React、Vue、Angular)的網站在客戶端動態加載數據。這樣的做法提升了用戶體驗,但對爬蟲來說則造成挑戰。
如何抓取JavaScript渲染內容
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://example.com')
time.sleep(3) # 等待JavaScript執行完成
content = driver.find_element(By.TAG_NAME, 'body').text
print(content)
driver.quit()
2.使用requests-html requests-html是一個輕量級的Python庫,能夠簡單抓取JavaScript渲染的內容,無需啟動整個瀏覽器。
from requests_html import HTMLSession
session = HTMLSession()
response = session.get('https://example.com')
response.html.render(sleep=3) # 讓JavaScript執行
content = response.html.text
print(content)
3.使用API(如果可用) 有些網站提供API來獲取數據,這通常是最穩定和高效的方式。若有API可用,儘量優先使用
總結:抓取JavaScript渲染內容確實較為複雜,但透過使用合適的工具和技術,我們仍能獲取所需的數據。無論是使用Selenium還是requests-html,靈活運用這些方法會更有效率。