Скачать / очистить / получить доступ к онлайн PDF после входа в R - PullRequest
0 голосов
/ 27 июня 2019

В настоящее время я пытаюсь импортировать таблицы PDF из большого количества файлов с помощью Tabulizer. Tabulizer прекрасно работает для PDF, все, что мне нужно сделать, это:

table <- extract_tables("pdf_path" or "pdf_url)

Однако проблема, с которой я сталкиваюсь, заключается в том, что веб-сайт, с которого я пытаюсь извлечь эти PDF-файлы, требует, чтобы вы вошли (бесплатно), чтобы просмотреть PDF-файлы. Поэтому я пытаюсь зайти на сайт, используя rvest и httr, а затем почистить PDF-файлы.

url <- 'https://www.krollbondratings.com/show_report/20265'
session <- html_session(url)
url <- jump_to(session, "https://www.krollbondratings.com/auth?uri=/show_report/20265")
form <- html_form(read_html(url))[[2]]
filled_form <- set_values(form,
                          email = "my_email",
                          password = "password")

pdf <- submit_form(session, filled_form)

Это то, где я застрял, я знаю, что движусь в правильном направлении, так как вывод "submit_form (session, fill_form)":

<session> https://www.krollbondratings.com/show_report/20265
  Status: 200
  Type:   application/pdf
  Size:   260625

Ясно, что на самом деле он успешно входит в систему и просматривает PDF, однако я не знаю, как заставить его оставаться в системе и загружать / получать доступ к PDF с помощью download.file или tabulizers extract_tables.

Загрузка файла после входа в систему с использованием https URL

Это лучшее учебное пособие, которое я нашел, но оно на самом деле не загружает PDF-файл специально, а представляет собой HTML-файл, который для меня бесполезен.

Спасибо, что уделили время всем.

1 Ответ

0 голосов
/ 27 июня 2019

Решено, он действительно загружает файл PDF, но не в формате PDF!

url <- 'https://www.krollbondratings.com/show_report/20265'
session <- html_session(url)
url <- jump_to(session, "https://www.krollbondratings.com/auth?uri=/show_report/20265")
form <- html_form(read_html(url))[[2]]
filled_form <- set_values(form,
                          email = "my_email",
                          password = "password")
pdf <- submit_form(session, filled_form)
download_url <- 'https://www.krollbondratings.com/show_report/20265'
writeBin(download$response$content, basename(download_url))
...