logo
Loading...

利用selenium執行js 移動到指定座標,但該怎麼知道要scroll到哪裡呢? - Cupoy

我查到selenium的用法資料:driver.execute_script('window.scr...

利用selenium執行js 移動到指定座標,但該怎麼知道要scroll到哪裡呢?

2019/12/31 下午 10:40
Python網路爬蟲討論版
Emma
觀看數:33
回答數:1
收藏數:0

我查到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