如何在Rvest中传递ssl_verifypeer?

时间:2015-12-31 20:22:28

标签: r ssl curl httr rvest

我正试图用Rvest从$ JOB的内部网页上刮掉一张桌子。 我用the methods listed here来获取xpath等等。

我的代码非常简单:

library(httr)
library(rvest)
un = "username"; pw = "password"

thexpath <- "//*[@id="theFormOnThePage"]/fieldset/table"    

url1 <- "https://biglonghairyURL.do?blah=yadda"

stuff1 <- read_html(url1, authenticate(un, pw))

这给我一个错误:“对等证书无法使用给定的CA证书进行身份验证。”

不考虑证书的最新版本,我看到it's possible using httr to avoid the ssl verification使用set_config(config(ssl_verifypeer = 0L))

如果我使用来自httr的GET(url1),这只会很有效,但重点是使用rvest自动抓取表格。

查看Rvesthttr的PDF,似乎Rvest调用httr来传递curl命令,而在httr中,你可以使用config()

那么,要完成三段论,我怎么能(或者甚至可能?)直接通过rvest :: read_html传递ssl_verifypeer = 0L?

我尝试了很多变种:

stuff1 <- read_html(url1, authenticate(un, pw), ssl_verifypeer = 0L)) 
stuff1 <- read_html(url1, authenticate(un, pw), config(ssl_verifypeer = 0L))) 
stuff1 <- with_config(config = config(ssl_verifypeer = 0L), read_html(url1, authenticate(un, pw)))

所有这些错误都会引发相同的错误“对等证书无法使用给定的CA证书进行身份验证。”

希望这是可能的,我只是没有把正确的语法放在一起?

有人建议使用RSelenium,但由于这是在受保护的VM中,安装java和/或新软件包会采取国会行为(以及VP签收),这将是我的最后手段。

我非常感谢你提出任何建议。

0 个答案:

没有答案