2016-12-01 72 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