【问题标题】:Extracting html tables from website从网站中提取 html 表格
【发布时间】:2011-05-06 16:56:12
【问题描述】:

我正在尝试使用 XML、RCurl 包来读取以下 URL 的一些 html 表 http://www.nse-india.com/marketinfo/equities/cmquote.jsp?key=SBINEQN&symbol=SBIN&flag=0&series=EQ#

这是我正在使用的代码

library(RCurl)
library(XML)
options(RCurlOptions = list(useragent = "R"))
url <- "http://www.nse-india.com/marketinfo/equities/cmquote.jsp?key=SBINEQN&symbol=SBIN&flag=0&series=EQ#"
wp <- getURLContent(url)
doc <- htmlParse(wp, asText = TRUE) 
docName(doc) <- url
tmp <- readHTMLTable(doc)
## Required tables 
tmp[[13]]
tmp[[14]]

如果您查看表格,它无法解析网页中的值。 我猜这是由于一些 javascipt 评估在运行中发生的。 现在,如果我在 google chrome 中使用“将页面另存为”选项(它在 mozilla 中不起作用) 并保存页面,然后使用上面的代码我可以读取值。

但是有没有办法让我可以阅读苍蝇的桌子? 如果您能提供帮助,那就太好了。

问候,

【问题讨论】:

  • 嗨,布兰登,我猜不是,如果你运行我写的代码,你会看到我得到了所需的表,但没有得到与字段关联的值,因为我猜是一些 javascipt问题
  • 是的,我一直在玩它,我找不到任何以必要的方式下载页面的东西。我可以提出的唯一建议是设置一个 chron 作业以使用 wget 之类的内容下载页面,然后让 R 以下载的本地文件为目标。
  • 不过,这也可能不起作用,您可能必须在将其移入 R 之前实施某种类型的网络抓取软件。

标签: r web-scraping rcurl


【解决方案1】:

看起来他们正在使用 javascript 通过访问 http://www.nse-india.com/marketinfo/equities/ajaxGetQuote.jsp?symbol=SBIN&series=EQ 并解析一些字符串来构建页面。也许您可以抓取这些数据并将其解析出来,而不是抓取页面本身。

不过,看起来您必须使用 cURL 使用正确的引用标头构建请求。如您所见,您不能只用一个简单的请求来访问 ajaxGetQuote 页面。

您可能可以通过使用 Chrome 或 Safari 中的 Web Inspector 或使用 Firefox 中的 Firebug 来读取要放入的适当标题。

【讨论】:

    猜你喜欢
    • 2015-06-05
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多