iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
自我挑戰組

30天認識爬蟲系列 第 13

[Day13] 抓取JavaScript渲染內容

  • 分享至 

  • xImage
  •  

今天是第十三天,許多現代網站使用JavaScript來動態生成內容,這讓傳統的爬蟲方法變得困難。當發送簡單的HTTP請求時,可能只會得到空白的HTML頁面,因為需要JavaScript執行才能生成所需的內容。今天我們來探討如何抓取這些JavaScript渲染的內容。

為什麼會有JavaScript渲染的內容?
使用前端框架(如React、Vue、Angular)的網站在客戶端動態加載數據。這樣的做法提升了用戶體驗,但對爬蟲來說則造成挑戰。

如何抓取JavaScript渲染內容

  1. 使用Selenium Selenium是流行的瀏覽器自動化工具,可以模擬人類用戶的行為,執行JavaScript。首先,安裝Selenium和相應的瀏覽器驅動(如ChromeDriver)。
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,靈活運用這些方法會更有效率。


上一篇
[Day12] 設置請求標頭和Session
下一篇
[Day14] 更高效抓取
系列文
30天認識爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言