我正在尝试使用R从https://www.bseindia.com/markets/equity/EQReports/MarketWatch.aspx下载.csv文件,但无法正常工作。
我正在发布屏幕快照,其中包含我要下载的文件的位置。
当我单击.csv文件的图像时,正在下载名称为“ MarketWatch_14_00_2018.csv”的文件
我的目标是将文件读入R,所以我使用了以下命令
MARKET_WATCH <- read.csv("MarketWatch_15_00_2018.csv", stringsAsFactors = F)
这工作正常,但是我想自动执行此过程,即直接从Web读取文件“ MarketWatch_15_00_2018.csv”,而无需手动单击并下载,因此我使用以下命令来完成此任务。
MARKET_WATCH_TEST <- read.csv("https://www.bseindia.com/markets/Equity/EQReports/MarketWatch.aspx?expandable=2/MarketWatch_17_00_2018.csv")
此命令没有给出错误,但是加载到数据框中的数据不正确,它有一些HTML代码已加载到数据框中
所以我尝试先下载文件,以便以后加载,我使用以下命令下载文件
downld <- getURL("https://www.bseindia.com/markets/Equity/EQReports/MarketWatch.aspx?expandable=2/MarketWatch_17_00_2018.csv? accessType=DOWNLOAD")
DATA <- read.csv (text = downld)
这次,我检查了数据是否在两个数据框中都复制了相同的HTML代码,即文件根本没有加载,只是将HTML文本加载到了数据框中
我尝试了其他几种方式,例如使用fread
和getURL
等,但没有一种有效。下面提到了我用于加载数据的代码。
dwnld <- fread("https://www.bseindia.com/markets/Equity/EQReports/MarketWatch.aspx?expandable=2/MarketWatch_17_00_2018.csv")
URL <- "https://www.bseindia.com/markets/equity/EQReports/MarketWatch.aspx/MarketWatch_17_00_2018.csv"
X <- getURL(URL)
有人可以帮助我理解为什么当我尝试直接从Web上直接下载文件时,为什么文件没有正确加载到R环境中的原因,因为将文件下载到本地桌面后可以正常加载。
答案 0 :(得分:1)
怎么样?
library(dplyr)
library("rvest")
url <- "https://www.bseindia.com/markets/equity/EQReports/MarketWatch.aspx"
data <- url %>%
read_html() %>%
html_table(fill = TRUE)
df <- data[[9]]
df <- df[, -c(11:21)]
编辑:我确实看到该网页具有一些Java脚本链接:
__doPostBack('ctl00$ContentPlaceHolder1$grd1','Page$2')
__doPostBack('ctl00$ContentPlaceHolder1$grd1','Page$3')
__doPostBack('ctl00$ContentPlaceHolder1$grd1','Page$4')
...
在表格底部,我只导入了结果的第一页。