Я пытаюсь загрузить файлы cookie при попытке загрузить PDF-файл.Использование R для приема файлов cookie для загрузки PDF-файла
Например, если у меня есть DOI для PDF документа о службе данных археологии, он будет решать this landing page с embedded link in it to this pdf но на самом деле перенаправляет на this другой ссылке.
library(httr)
будет обрабатывать разрешение DOI, и мы можем извлечь pdf-адрес с целевой страницы, используя library(XML)
, но я застрял в получении самого PDF.
Если я это сделать:
download.file("http://archaeologydataservice.ac.uk/archiveDS/archiveDownload?t=arch-1352-1/dissemination/pdf/Dyfed/GL44004.pdf", destfile = "tmp.pdf")
тогда я получаю HTML-файл, который является таким же, как http://archaeologydataservice.ac.uk/myads/
Trying ответ на How to use R to download a zipped file from a SSL page that requires cookies приводит меня к этому:
library(httr)
terms <- "http://archaeologydataservice.ac.uk/myads/copyrights"
download <- "http://archaeologydataservice.ac.uk/archiveDS/archiveDownload"
values <- list(agree = "yes", t = "arch-1352-1/dissemination/pdf/Dyfed/GL44004.pdf")
# Accept the terms on the form,
# generating the appropriate cookies
POST(terms, body = values)
GET(download, query = values)
# Actually download the file (this will take a while)
resp <- GET(download, query = values)
# write the content of the download to a binary file
writeBin(content(resp, "raw"), "c:/temp/thefile.zip")
Но после функций POST
и GET
Я просто получаю HTML-версию той же самой страницы cookie, что и у меня с download.file
:
> GET(download, query = values)
Response [http://archaeologydataservice.ac.uk/myads/copyrights?from=2f6172636869766544532f61726368697665446f776e6c6f61643f61677265653d79657326743d617263682d313335322d3125324664697373656d696e6174696f6e2532467064662532464479666564253246474c34343030342e706466]
Date: 2016-01-06 00:35
Status: 200
Content-Type: text/html;charset=UTF-8
Size: 21 kB
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h...
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; c...
<title>Archaeology Data Service: myADS</title>
<link href="http://archaeologydataservice.ac.uk/css/u...
...
Глядя на http://archaeologydataservice.ac.uk/about/Cookies, кажется, что ситуация печенья на этом сайте сложно. Похоже, эта сложность в отношении печенья не является необычной для британских поставщиков данных: automating the login to the uk data service website in R with RCurl or httr
Как я могу использовать R, чтобы пройти мимо файлов cookie на этом веб-сайте?
Попробуйте Ubuntu 14.04, R 3.2.3 и Firefox. 'dr $ open()' reports '[1]« Подключение к удаленному серверу » Неопределенная ошибка в вызове RCurl.Error в queryRD (paste0 (serverURL,«/session »),« POST », qdata = toJSON (serverOpts)): ' –
Это всегда был мой самый большой нит, чтобы выбрать с Селеном вообще (не обязательно R pkg). Согласование между Windows, OS X & * nix настолько сложно.Надеюсь, люди могут добавить к этому (все мои системы * nix очень тонко сконфигурированы безголовыми серверными вещами, и я не собираюсь сегодня осваивать драйвер phantomjs :-) – hrbrmstr
Хорошо, нашел, как заставить его работать на моем компьютер. Мне пришлось вручную запустить автономный сервер selenium сначала с помощью java -jar selenium-server-standalone-2.48.0.jar'. Тогда я могу подключиться. –