logo
Loading...

document.body.scrollHeight和 document.documentElement.scrollHeight有什麼不同? - Cupoy

在 Day 023 的範例和HW中分別使用下列兩到指令去下滑 ETtoday網頁是沒有問題的。bro...

pycrawler,pycrawler-d23, 打開瀏覽器並連到, Scroll, Wait, Calculate

document.body.scrollHeight和 document.documentElement.scrollHeight有什麼不同?

2020/01/02 下午 04:51
Python網路爬蟲討論版
計弘達
觀看數:17
回答數:1
收藏數:1
pycrawler
pycrawler-d23
打開瀏覽器並連到
Scroll
Wait
Calculate

在 Day 023 的範例和HW中分別使用下列兩到指令去下滑 ETtoday網頁是沒有問題的。


browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")


new_height = browser.execute_script("return document.body.scrollHeight")


但另外寫了個程式用上面兩行指令去爬 Youtube ,卻無法讓 YouTube 往下捲,試了好一會,後來改用下面兩道指令就 OK 了。


browser.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")


new_height = browser.execute_script("return document.documentElement.scrollHeight")


請問 "document.body.scrollHeight" 和 "document.documentElement.scrollHeight" 有什麼不同?又為什麼在 ETtiday 和 YouTube 有不同的用法與結果?


附上程式碼

回答列表

  • 2020/01/02 下午 05:27
    張維元 (WeiYuan)
    贊同數:2
    不贊同數:0
    留言數:1

    document 指的是整個網頁,這也是我們習慣把網頁 HTML 稱為 DOM 的全名。document.body 指的是 HTML 這個 DOM 底下的 <body>,document.documentElement 是指 HTML 底下的第一個 DOM(可能不是 body)。至於為什麼 Youtube 要使用後面的語法,應該是 Youtube 在網頁結構上的設計比較特別。