次のように pdf ファイルをダウンロードしようとしています (これは商用サイトであるため、以下の URL、ユーザー名、およびパスワードを置き換える必要がありました)。
## login to the site first
library(RSelenium)
RSelenium::checkForServer()
RSelenium::startServer(log = TRUE, invisible = FALSE)
remDr <- remoteDriver(browserName = "chrome")
remDr$open()
remDr$setImplicitWaitTimeout(3000)
remDr$navigate(url) # the url of the login page
remDr$findElement("id", "LoginForm_username")$sendKeysToElement(list("user"))
remDr$findElement("id", "LoginForm_password")$sendKeysToElement(list("pass"))
remDr$findElement("name", "start")$clickElement() ## this is the login button
これは、企業の相互作用に関するデータを含む Web サイトです。APIを知っているので、興味のある各レポートのページ名を見つけました。ページには「pdfをダウンロード」ボタンがあります。このボタンをクリックすると、サイトは動的にレポートを pdf 形式で生成し、レポートを返します (「97da08491e3e41447f591c2b668c0602.pdf」のようなランダムな名前で)。これには wkhtml2pdf を使用していると思います。次のコードを使用してボタンをクリックします。
# pp is the name of a link for a given report
remDr$navigate(pp)
Sys.sleep(7) # wait for the page to load
remDr$findElement("id", "download-pdf")$clickElement()
「pdf をダウンロード」ボタンをクリックすると、サイトによってドキュメントが生成され、Chrome によって保存されます。(ランダムな名前は毎回異なり、download.file()
取得するようなものを使用する方法はありません)ドキュメントがこのランダムな名前で保存されることを除いて、これは正常に機能します。むしろ、サイトから返された pdf をキャプチャし、より有益な名前を使用して保存したい (これを何百回も行う必要があるため、すべての pdf を手動で順番に処理する必要はありません)特定の企業に関するレポートを見つけるには)。
だから、私の質問は次のとおりです。サイトによって動的に生成されて返される pdf をキャプチャし、自分で選択した名前で保存するにはどうすればよいですか?
(サイトへのリンクを提供できないことをお詫びしますが、これは私が公に共有することを許可されていない独自のサイトです。ただし、この問題がより多くの人やサイトに役立つことを期待しています)。