document.body.scrollHeight和 document.documentElement.scrollHeight有什麼不同?
在 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 在網頁結構上的設計比較特別。