R-使用RSelenium登录网站(验证码,并保持登录状态)

R-使用RSelenium登录网站(验证码,并保持登录状态),r,web-scraping,rselenium,R,Web Scraping,Rselenium,我想每天使用RSelenium访问和浏览一个网站。我注意到,当我用普通的chrome浏览器打开网站时,我已经从上次访问该网站时开始登录。但是,如果我使用RSelenium打开一个远程驱动程序,并使用该驱动程序访问网页,它不会让我已经登录到该网站。它的基本足够登录到大多数网站通常,但对于这个网站有一个验证码,使登录更困难 远程驱动程序是否可以在我已登录的情况下访问网站 下面是我的代码示例: this_URL = "my_url_goes_here" startServer() remDr = r

我想每天使用RSelenium访问和浏览一个网站。我注意到,当我用普通的chrome浏览器打开网站时,我已经从上次访问该网站时开始登录。但是,如果我使用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_元素链接后,它会将我带到页面,输入用户名、密码,然后单击验证码/按要求执行


谢谢,

它应该使用firefox和firefox配置文件工作,如下所示:

  • 设置Firefxx访问: 打开firefox并像往常一样登录。确保在关闭firefox并再次登录时保持登录状态

  • 找出默认firefox配置文件的位置: 这应该是这样的:()

    • Windows:%AppData%MozillaFirefoxProfilesxxxxxxx.default
    • Mac:~/.mozilla/firefox/xxxxxxxx.default/
    • Linux:~/Library/Application Support/Firefox/Profiles/xxxxxxxx.default/
  • 启动一个新的RSelenium驱动程序并按如下方式设置配置文件

  • ->

    require(RSelenium)
    
    据我所知,eCap无法在不同的chrome会话中共享chrome配置文件,因此我认为答案是否定的。我想这就是验证码的意义所在,对吧,让像这样的自动登录变得困难?是的。在geckodriver/firefox中,我看到了一个附加到现有实例的选项
    ——连接现有实例连接到现有firefox实例
    ,因此您可能会在那里有一些运气。目前,您是否需要登录常规的chrome浏览器?如果没有,并且它记得您,那么将您当前的chrome配置文件与RSelenium一起使用就足够了。如何将当前的chrome配置文件与RSelenium一起使用?目前,它总是打开一个新的chrome浏览器。在使用firefox尝试任何东西之前,我更愿意尝试这个。看看这里的讨论。您可以使用
    getChromeProfile
    功能。唯一棘手的是正确确定
    dataDir
    profileDir
    require(RSelenium)
    eCap <- list("webdriver.firefox.profile" = "MySeleniumProfile")
    remDr <- remoteDriver(browserName = "firefox", extraCapabilities = eCap)
    remDr$open()