2016-12-01 97 views
1

我想每天使用RSelenium訪問和刮取網站。我注意到的一點是,當我在普通瀏覽器中打開網站時,我已經從上次訪問網站登錄了。但是,如果我使用RSelenium打開遠程驅動程序,並使用此驅動程序訪問網頁,則它不會讓我登錄到網站。它通常足夠基本登錄到大多數網站,但是對於該網站來說,有一個驗證碼使登錄更加困難。R - 使用RSelenium登錄網站(驗證碼,並保持登錄狀態)

反正有遠程驅動程序可以訪問我的網站已登錄?下面我的代碼

例子:

this_URL = "my_url_goes_here" 
startServer() 

remDr = remoteDriver$new(browserName = 'chrome') 
Sys.sleep(2); remDr$open(); 
Sys.sleep(4); remDr$navigate(this_URL); 

login_element = remDr$findElement(using = "id", "login-link") 
login_element$ 

點擊login_element鏈接後,它帶給我的網頁,我輸入我的用戶名,密碼,點擊驗證碼/做什麼要求。

感謝,

+0

據我所知,您不能在不同的chrome會話中共享chrome個人資料,因此我認爲答案是否定的。 – jdharrison

+0

我想這是captcha的重點,正確的做法是讓這種登錄自動化很難嗎? – Canovice

+0

是的。通過geckodriver/firefox,我發現有一個選項可以附加到現有的實例'--connect-existing連接到一個現有的Firefox實例',所以你可能會有一些運氣。您目前是否需要在常規Chrome瀏覽器上登錄?如果沒有,它會記住你,那麼它應該足以使用你當前的chrome profile和RSelenium。 – jdharrison

回答

2

它應該使用Firefox和Firefox配置如下:

  1. 設置Firefxx訪問: 打開Firefox和登錄如常。確保當您關閉Firefox和您再次登錄在你保持登錄

  2. 找出你默認的Firefox配置文件的位置: 這應該是somethink這樣的:(source + more details

    • 的Windows:%AppData的%MozillaFirefoxProfilesxxxxxxxx.default
    • 的Mac:〜/ .mozilla /火狐/ xxxxxxxx.default/
    • 的Linux:〜/庫/ Application Support /火狐/概況/ xxxxxxxx.default/
  3. 啓動一個新的RSelenium驅動程序和設置簡介如下

- >

require(RSelenium) 
eCap <- list("webdriver.firefox.profile" = "MySeleniumProfile") 
remDr <- remoteDriver(browserName = "firefox", extraCapabilities = eCap) 
remDr$open() 

打開應該是你所選配置文件Firefox的窗口。

我之前做過這個。如果我沒有記錯,它就是這樣。

P.S .:你也可以爲此創建一個額外/新的firefox配置文件。要做到這一點,請按照以上鍊接中的步驟操作

+0

謝謝,好吧,我會給這個嘗試 – Canovice