PDFをダウンロードしようとするとクッキーがつまってしまいます。例えばRを使用してクッキーを受け入れてPDFファイルをダウンロードする
私は考古学データサービス上のPDF文書のDOIを持っている場合、それはembedded link in it to this pdfでthis landing page に解決が、本当にthis他のリンクにリダイレクトされます。
library(httr)
はDOIの解決を処理し、library(XML)
を使用してリンク先ページからpdf URLを抽出できますが、私はPDF自体を取得することに固執しています。
私が行う場合は、この:私はHow to use R to download a zipped file from a SSL page that requires cookiesの答えをしようとhttp://archaeologydataservice.ac.uk/myads/
と同じであるHTMLファイルを受け取り、その後
download.file("http://archaeologydataservice.ac.uk/archiveDS/archiveDownload?t=arch-1352-1/dissemination/pdf/Dyfed/GL44004.pdf", destfile = "tmp.pdf")
はこれに私をリード:
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
の機能の後、私は単にと同じCookieページのHTMLを取得します:
> 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...
...
このサイトでのクッキーの状況は複雑であると思われます。この種のCookieの複雑さは、英国のデータプロバイダにとって珍しいことではないようです:automating the login to the uk data service website in R with RCurl or httr
このウェブサイトでクッキーを取得するにはどうすればよいですか?
Ubuntu 14.04、R 3.2.3、Firefoxをお試しください。リモートサーバへの接続 RCurl呼び出しでの定義されていないエラーです。queryRD(paste0(serverURL、 "/ session")、 "POST"、qdata = toJSON(serverOpts) ): ' –
これは、セレンの一般的な選択(必ずしもR pkgではない)のための私の最大のニットでした。 Windows、OS Xと* nixの整合性を取ることはとても難しいです。うまくいけば、人々はこれに追加することができます(私のすべての* nixシステムは非常に薄く構成されているヘッドレスサーバーのものと私は今夜phantomjsドライバをマスターしようとしていないよ:-) – hrbrmstr
OK、それは私のコンピューター。私は手動で 'java -jar selenium-server-standalone-2.48.0.jar'でセレンスタンドアロンサーバを手動で起動しなければなりませんでした。それから私は接続することができます。 –