2017-07-20 10 views
1

RSeleniumを使用してソーシャルメディアのWebサイトを自動的にスクロールして投稿を保存しています。時にはウェブページの一番下にたどり着き、利用可能なデータがなくなったため、これ以上の投稿はロードできません。私はちょうど私がスクロールしようとするのを止めることができるので、これが事実であるかどうかをチェックできるようにしたい。RSeleniumでスクロールダウンできるか確認してください

RSeleniumでスクロールを続けることができるかどうかを確認するにはどうすればよいですか?以下のコードは、私がしようとしていることを示しています - 私はちょうど "if"ステートメントで助けが必要だと思います。

はFYI(ページの高さは、反復間で変更した場合、基本的にチェック)のPython hereでこれを行うためのソリューションがありますが、私は

# Open webpage 
library(RSelenium) 
rD = rsDriver(browser = "firefox") 
remDr = rD[["client"]] 
url = "https://stocktwits.com/symbol/NZDCHF" 
remDr$navigate(url) 

# Keep scrolling down page, loading new content each time. 
ptm = proc.time() 
repeat { 
    remDr$executeScript("window.scrollTo(0,document.body.scrollHeight);") 
    Sys.sleep(3) #delay by 3sec to give chance to load. 

    # Here's where i need help 
    if([INSERT CONDITION TO CHECK IF SCROLL DOWN IS POSSIBLE]) { 
    break 
    } 
} 
R.

でそれを実装する方法を見つけ出す(または任意の他の溶液)することはできません

答えて

2

Python hereでこれを行う方法を見つけて、Rで動作するように修正しました。以下は、上に掲載した元のコードの現在のアップデートです。

# Open webpage 
library(RSelenium) 
rD = rsDriver(browser = "firefox") 
remDr = rD[["client"]] 
url = "https://stocktwits.com/symbol/NZDCHF" 
remDr$navigate(url) 

# Keep scrolling down page, loading new content each time. 
last_height = 0 # 
repeat { 
    remDr$executeScript("window.scrollTo(0,document.body.scrollHeight);") 
    Sys.sleep(3) #delay by 3sec to give chance to load. 

    # Updated if statement which breaks if we can't scroll further 
    new_height = remDr$executeScript("return document.body.scrollHeight") 
    if(unlist(last_height) == unlist(new_height)) { 
    break 
    } else { 
    last_height = new_height 
    } 
} 
関連する問題