从网站中提取 html 表

发布于 2024-11-05 09:03:55 字数 892 浏览 3 评论 0原文

我正在尝试使用 XML、RCurl 包来读取以下 URL 的一些 html 表 http://www.nse-india.com/marketinfo/equities/cmquote.jsp?key=SBINEQN&symbol=SBIN&flag=0&ser​​ies=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 中不起作用) 并保存页面,然后使用上面的代码我可以读取值。

但是有没有办法让我可以阅读苍蝇的表格? 如果你能帮忙那就太好了。

问候,

I am trying to use XML, RCurl package to read some html tables of the following URL
http://www.nse-india.com/marketinfo/equities/cmquote.jsp?key=SBINEQN&symbol=SBIN&flag=0&series=EQ#

Here is the code I am using

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]]

If you look at the tables it has not been able to parse the values from the webpage.
I guess this due to some javascipt evaluation happening on the fly.
Now if I use "save page as" option in google chrome(it does not work in mozilla)
and save the page and then use the above code i am able to read in the values.

But is there a work around so that I can read the table of the fly ?
It will be great if you can help.

Regards,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萌吟 2024-11-12 09:03:55

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

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

您可以使用 Chrome 或 Safari 中的 Web Inspector,或者使用 Firefox 中的 Firebug 来读取要放入的适当标头。

Looks like they're building the page using javascript by accessing http://www.nse-india.com/marketinfo/equities/ajaxGetQuote.jsp?symbol=SBIN&series=EQ and parsing out some string. Maybe you could grab that data and parse it out instead of scraping the page itself.

Looks like you'll have to build a request with the proper referrer headers using cURL, though. As you can see, you can't just hit that ajaxGetQuote page with a bare request.

You can probably read the appropriate headers to put in by using the Web Inspector in Chrome or Safari, or by using Firebug in Firefox.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文