我正在使用 Windows 7 机器。是否可以从 RSelenium 库运行 remoteDriver()$open() 并让浏览器在后台运行(即不可见)。
谢谢
是的,这是可能的。默认浏览器RSelenium
是 Firefox。但是,它RSelenium
甚至支持无头浏览PhantomJS
,这在相应的小插图中进行了详细描述。
通常,要PhanomJS
在 Windows 7 下使用,您只需要
phantomjs.exe
中的用户或系统 PATH 变量的附加条目(例如)注意:它本身不是路径规范的一部分。Environment Variable
C:\Program Files\phantomjs-1.9.7-windows
phantomjs.exe
默认浏览:
checkForServer()
startServer()
remDrv <- remoteDriver()
remDrv$open()
...
remDrv$quit()
remDrv$closeServer()
无头浏览:
pJS <- phantom()
remDrv <- remoteDriver(browserName = 'phantomjs')
remDrv$open()
...
remDrv$close()
pJS$stop()
命令行参数和 POODLE
注意您可以传递给的命令行参数phantom
。
例如,PhantomJS 默认使用 SSLv3,自 POODLE 以来每个服务器都不鼓励使用 SSLv3。
phantom
解决方法是调用--ssl-protocol=tlsv1
:
pJS <- phantom(extras = c('--ssl-protocol=tlsv1'))
时间问题
PhantomJS 经常发生的一件事是时间问题。与 Firefox 和 Chrome 等浏览器一起工作的代码与 PhantomJS 不同,因为 PhantomJS 太快了。
Sys.sleep
您可以通过在不同呼叫之间进行呼叫来解决此问题remoteDriver
。