Mi sto bloccando sui cookie quando provo a scaricare un PDF.Utilizzo di R per accettare i cookie per scaricare un file PDF
Per esempio, se ho un DOI per un documento PDF sul Data Service Archeologia, si risolverà a this landing page con una embedded link in it to this pdf ma che reindirizza veramente this altro collegamento.
library(httr)
gestirà la risoluzione del DOI e possiamo estrarre l'URL pdf dalla pagina di destinazione utilizzando library(XML)
ma sono bloccato a ottenere il PDF stesso.
Se faccio questo:
download.file("http://archaeologydataservice.ac.uk/archiveDS/archiveDownload?t=arch-1352-1/dissemination/pdf/Dyfed/GL44004.pdf", destfile = "tmp.pdf")
poi ricevo un file HTML che è lo stesso di http://archaeologydataservice.ac.uk/myads/
Cercando la risposta a How to use R to download a zipped file from a SSL page that requires cookies mi porta a questo:
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")
Ma dopo le funzioni POST
e GET
ottengo semplicemente l'HTML della stessa pagina di cookie che ho ottenuto con 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...
...
Guardando http://archaeologydataservice.ac.uk/about/Cookies sembra che la situazione dei cookie in questo sito è complicato. Sembra che questo tipo di cookie non sia insolito per i fornitori di dati nel Regno Unito: automating the login to the uk data service website in R with RCurl or httr
Come posso utilizzare R per superare i cookie su questo sito?
Ha provato su Ubuntu 14.04, R 3.2.3 e Firefox. 'dr $ open()' riporta '[1]" Connessione al server remoto " Errore non definito in RCurl call.Error in queryRD (paste0 (serverURL,"/sessione ")," POST ", qdata = toJSON (serverOpts)): –
Questa è sempre stata la mia più grande nit da scegliere con il Selenium in generale (non necessariamente con il pacchetto Rkg). Ottenere coerenza tra Windows, OS X e * nix è così difficile.Speriamo che la gente possa aggiungere a questo (tutti i miei sistemi * nix sono cose server-y headless configurate in modo molto sottile e non sono abt a cercare di padroneggiare il driver phantomjs stasera :-) – hrbrmstr
OK, ho trovato come farlo funzionare sul mio computer. Ho dovuto avviare manualmente il server autonomo di selenio prima con 'java -jar selenium-server-standalone-2.48.0.jar'. Quindi posso connettermi. –