R-使用RSelenium登录网站(验证码,并保持登录状态)
我想每天使用RSelenium访问和浏览一个网站。我注意到,当我用普通的chrome浏览器打开网站时,我已经从上次访问该网站时开始登录。但是,如果我使用RSelenium打开一个远程驱动程序,并使用该驱动程序访问网页,它不会让我已经登录到该网站。它的基本足够登录到大多数网站通常,但对于这个网站有一个验证码,使登录更困难 远程驱动程序是否可以在我已登录的情况下访问网站 下面是我的代码示例:R-使用RSelenium登录网站(验证码,并保持登录状态),r,web-scraping,rselenium,R,Web Scraping,Rselenium,我想每天使用RSelenium访问和浏览一个网站。我注意到,当我用普通的chrome浏览器打开网站时,我已经从上次访问该网站时开始登录。但是,如果我使用RSelenium打开一个远程驱动程序,并使用该驱动程序访问网页,它不会让我已经登录到该网站。它的基本足够登录到大多数网站通常,但对于这个网站有一个验证码,使登录更困难 远程驱动程序是否可以在我已登录的情况下访问网站 下面是我的代码示例: this_URL = "my_url_goes_here" startServer() remDr = r
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配置文件工作,如下所示:
- Windows:%AppData%MozillaFirefoxProfilesxxxxxxx.default
- Mac:~/.mozilla/firefox/xxxxxxxx.default/
- Linux:~/Library/Application Support/Firefox/Profiles/xxxxxxxx.default/
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()