【发布时间】:2021-05-22 08:30:46
【问题描述】:
我正在尝试从网页中提取历史股价信息。但是,rvest 会引发 xml 错误。
我是这方面的新手,有人可以帮助我了解如何进行这项工作吗?
这是我使用 rvest 的 R 脚本
share_url <- "https://www.moneycontrol.com/stocks/hist_stock_result.php?ex=B&sc_id=ITC&mycomp=ITC"
share.data<- read_html(share_url)
share_css<-"#mc_mainWrapper > div.PA10 > div.FL > div.PT15 > div.MT12 > table > tbody"
share_table<- share.data %>% read_html() %>% html_nodes("table") %>% html_table()
错误:
UseMethod("read_xml") 中的错误:没有适用的方法 'read_xml' 应用于类“c('xml_document', 'xml_node')"
【问题讨论】:
-
您在错误的对象类型上再次调用 read_html。改为
share.data %>% html_nodes("table") %>% html_table() -
谢谢@QHarr - 尝试了你的建议 - 但得到了这个错误矩阵中的错误(unlist(values),ncol = width,byrow = TRUE):'data'必须是向量类型,是'空
-
那么您的 css 选择器与返回的 html 文档中的任何内容都不匹配。它可能是错误的 css 选择器,或者目标元素是 js 渲染的,因此不存在于您从 rvest 返回的内容中。您需要在浏览器中检查返回的 html 或暂时关闭 js 并检查您的目标元素。
-
目前,我在该页面上看不到任何数据或日期范围
-
moneycontrol.com/stocks/… - 这是链接 url,这是选择器工具为表格返回的内容 - .PA10 , tr:nth-child(4) td... 我不太熟悉 Java或 CSS,所以我无法对此发表评论。感谢您在这里帮助我 Q Harr
标签: r web-scraping rvest