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

时间:2016-12-01 20:24:17

标签: r web-scraping rselenium

我想每天使用RSelenium访问和抓取一个网站。我注意到的一点是,当我在普通的Chrome浏览器中打开网站时,我已经从上次访问网站时登录了。但是,如果我使用RSelenium打开一个远程驱动程序,并使用此驱动程序访问该网页,它已经没有我登录到该网站。它基本上足以登录大多数网站,但是对于这个网站来说,有一个Captcha使得登录更加困难。

无论如何,远程驱动程序可以在我登录后访问该网站吗?

我的代码示例如下:

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链接后,它会将我带到我输入用户名,密码的页面,然后点击验证码/执行它所要求的内容。

谢谢,

1 个答案:

答案 0 :(得分:3)

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

  1. 设置Firefxx访问: 像往常一样打开firefox并登录。确保当您关闭firefox并再次登录时,您仍然可以登录。

  2. 找出默认firefox配置文件的位置: 这应该是一些思考:(source + more details

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

  4. - >

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

    打开的firefox窗口应该是您选择的个人资料。

    我刚才这样做了。如果我没记错的话就像这样。

    P.S。:您还可以为此创建额外/新的firefox配置文件。为此,请按照上面链接中的步骤进行操作