【发布时间】:2020-06-21 23:05:34
【问题描述】:
这似乎是一个简单的问题,但我已经为此苦苦挣扎了几天。这是一个最小的工作示例,而不是实际问题:
This question 似乎很相似,但我无法使用答案来解决我的问题。
在浏览器中,我转到this url,然后单击[搜索](无需从列表中进行任何选择),然后单击[下载结果](例如,选择 Xlsx 选项)。然后下载文件。
为了在 R 中实现自动化,我尝试过:
library(rvest)
url1 <- "https:/secure.gamblingcommission.gov.uk/PublicRegister/Search"
sesh1 <- html_session(url1)
form1 <-html_form(sesh1)[[1]]
subform <- submit_form(sesh1, form1)
使用 Chrome 开发者工具,我找到了用于启动下载的 url,所以我尝试:
url2 <- "https:/secure.gamblingcommission.gov.uk/PublicRegister/Search/Download"
res <- GET(url = url2, query = list(format = "xlsx"))
但是这不会下载文件:
> res$content
raw(0)
我也试过
download.file(url = paste0(url2, "?format=xlsx") , destfile = "down.xlsx", mode = "wb")
但这不会下载任何内容:
> Content type '' length 0 bytes
> downloaded 0 bytes
请注意,在浏览器中,粘贴 url2 并添加 format 查询会启动下载(在从 url1 进行搜索之后)
我认为我应该以某种方式使用初始代码块中的会话信息来进行下载,但到目前为止我不知道如何。
提前感谢您的帮助!
【问题讨论】:
-
你需要使用
jump_to
标签: r web-scraping rvest