Я пытаюсь использовать Rvest для очистки таблицы с внутренней веб-страницы здесь, в $JOB. Я использовал методы, перечисленные здесь чтобы получить 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))
Это приводит к ошибке: "Сертификат узла не может быть аутентифицирован с указанными сертификатами ЦС".
Если оставить в стороне неактуальность сертификатов, я вижу, что можно использовать httr, чтобы избежать проверки SSL с помощью set_config(config(ssl_verifypeer = 0L))
.
Это работает просто великолепно, если я использую GET(url1) из httr, но весь смысл в том, чтобы автоматизировать очистку таблицы с помощью rvest.
Глядя на PDF-файлы для Rvest и httr, кажется, что Rvest вызывает httr для передачи команд curl, и что в httr можно использовать config()
.
Итак, чтобы завершить силлогизм, как я могу (или вообще возможно?) передать ssl_verifypeer = 0L напрямую через rvest::read_html?
Я пробовал довольно много вариантов:
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)))
И все они выдают одну и ту же ошибку "Сертификат узла не может быть аутентифицирован с указанными сертификатами ЦС".
Надеюсь, это возможно, и я просто не составляю правильный синтаксис?
Кто-то предложил использовать RSelenium, но, поскольку он находится на защищенной виртуальной машине, установка java и / или новых пакетов требует акта Конгресса (вместе с подписанием VP) и будет моим последним средством.
Я очень ценю любые советы по этому поводу.
read_html(content(GET(…), as="text")
(при условии, что ssl-проверка однорангового узла работает сGET
)? Это законный способ передачи HTML вread_html
и все еще очень удобный для сценариев. - person hrbrmstr   schedule 01.01.2016