利用selenium執行js 移動到指定座標,但該怎麼知道要scroll到哪裡呢?
我查到selenium的用法資料:
driver.execute_script('window.scrollTo(0,10000)') 是指利用selenium執行js 移動到指定座標
也就是scroll 但是那個指定座標我們怎麼知道要scroll到哪裡呢? 那個(0,10000)怎麼看出來的?
還有以下這兩個地方的數字也是靠經驗設定嗎?執行後常常葉面往下scroll幾次後就停了,沒辦法完全載入當天全部新聞,我發現如果睡眠時間設定太短,新資料還未完全載入的話,下一波好像不能執行,它會自動停下,就沒辦法達到我設定的載入次數了,要怎麼知道如何設定才能剛好取到想要的時間點的新聞? 還是只能只能重新嘗試設定數字直到出現該時間新聞為止?
回答列表
-
2020/01/02 上午 10:17張維元 (WeiYuan)贊同數:3不贊同數:0留言數:1
以下簡單回覆你的問題:
1. 那個(0,10000)怎麼看出來的?
=> 這邊的 10000 是故意設一個很大的數字,讓程式一直想拉到最底的概念。
2. 以下這兩個地方的數字也是靠經驗設定嗎?執行後常常葉面往下scroll幾次後就停了,沒辦法完全載入當天全部新聞,我發現如果睡眠時間設定太短,新資料還未完全載入的話,下一波好像不能執行,它會自動停下,就沒辦法達到我設定的載入次數了
=> 這邊只是提供一個範例,實現程式是可以依據瀏覽器的畫面進行操作
3. 要怎麼知道如何設定才能剛好取到想要的時間點的新聞? 還是只能只能重新嘗試設定數字直到出現該時間新聞為止?
=> 接續上面那一個回答,具體上要完成「抓取當天新聞」的需求有幾種做法:
(1) 無限的載入, while + scrorlling
(2) 無限的載入+判斷 while + scrorlling + if
(3) 另外有一個比較進階的用法是 wait.until ,可以設定等待到什麼行為才繼續運行,有興趣的話可以參考官方文件:https://selenium-python.readthedocs.io/waits.html