首页 > 解决方案 > 在多行中在 R 中进行网络抓取时缺少行 - 从印度的 NSE 索引中抓取时

问题描述

在下面脚注中给出的名为“EQUITY_L.csv”的 URL 中给出的第一个文件

我正在尝试使用来自 NSE 网站的下面脚注中的文件中给出的符号变量访问 URL“ https://in.finance.yahoo.com/quote/3MINDIA.NS/history?p=3MINDIA.NS ” . 我可以通过代码从多个文件中获取数据,但仅在数据表中获取前 100 行或每个 URL 总共 250 个。我无法解决问题。我还查看了每个 URL 中可用的表,并且只有一个表。如何获取每个 URL 中的全部 250 行?我查看了 quantmod 函数,但它具有美国特定的索引。你能帮忙解决这个..

read.csv(file="C:/Users/Documents/EQUITY_L.csv", header=TRUE, sep=",")

MyData$SYMBOL
Symbol<-MyData$SYMBOL
tbls_ls<-list()
for(i in 1:12) {
webpage<-paste0("https://in.finance.yahoo.com/quote/",Symbol[i],".NS","/history?p=",Symbol[i],".NS")
Webpage<-read_html(webpage)
tbls_ls[i] <- Webpage %>%
        html_nodes("table") %>%
        .[1] %>%
        html_table(fill = TRUE)}

标签: rxmlweb-scrapingrvest

解决方案


嗯...您似乎在这里遇到了一些问题,并且最近对该帖子的编辑似乎已删除了其中一些问题。如果您使用将 data.frame 强制为没有行名的小标题的包,则会出现没有行名的问题。

我认为如果你只是使用quantmod它会解决你的许多问题。它将返回一个xts对象,其中行名存储为日期向量。2007-01-02默认设置返回 2942 个观察值,或者如果有问题的证券已经存在那么久并且不包含缺失值,则为每日返回。

修改上面的代码:

MyData <- read.csv(file="C:/Users/Documents/EQUITY_L.csv", header=TRUE, sep=",")
Symbol<-MyData$SYMBOL

然后添加这个

library(quantmod)
getSymbols(Symbol)

而已!


推荐阅读