如何获取下载源的URL?

时间:2019-05-10 15:20:12

标签: r web-scraping

我想通过R代码下载文件,该文件通过单击此站点上的“下载”按钮下载: https://ivo.gascade.biz/ivo/capacities?9 enter image description here

点击“下载”将运行GET方法https://ivo.gascade.biz/ivo/capacities?reportparameterselect_hf_0=&9-2.IFormSubmitListener-form=&netpoint=6800&flowDirection=EXIT&from=08%2F05%2F2019&to=06%2F05%2F2021&fileType=1&download=Download

但是当我使用时:

url <- "https://ivo.gascade.biz/ivo/capacities?reportparameterselect_hf_0=&9-2.IFormSubmitListener-form=&netpoint=6800&flowDirection=EXIT&from=08%2F05%2F2019&to=06%2F05%2F2021&fileType=1&download=Download"
download.file(url, dest.file="myfile.csv")

然后我仅下载html thrash。关于使用R代码获取文件的任何建议?

奇怪的是,当它返回""

RCurl::getURL("https://ivo.gascade.biz/ivo/capacities?9")

1 个答案:

答案 0 :(得分:1)

他们期望与实时会话相关的cookie。即使请求的数据相同,每个请求的请求URL也会看起来不同,但是cookie保持不变。如果浏览器中有实时会话,则可以在“网络”标签的请求标题下找到JSESSIONID cookie和当前请求URL。将它们作为命名向量传递到标头参数:

{{1}}

但是,这似乎仅在浏览器中打开感兴趣的页面并且您已经填写了表单并单击下载后才起作用,这显然不是很实用。我认为在这种情况下,最好的选择是使用RSelenium之类的网络驱动程序,该驱动程序可以通过编程方式模拟浏览器的活动。

也许还可以使用httr创建更持久的连接,并添加更多的标头参数(例如keepalive)。但是我怀疑RSelenium在这里可能是更好的选择。