R - 从网页阅读表

时间:2016-07-26 06:45:50

标签: r

我想从下面提到的网页访问包含证券列表的表格。

https://www.nseindia.com/products/content/derivatives/equities/fo_underlying_home.htm

我对R比较陌生,我试过这个论坛提供的解决方案 readLines()方法,尝试使用XML库,即readHTMLTable()方法,但无法从网页访问该表。此外,我还尝试使用GET()使用Chrome作为user_agent(因为我收到了禁止的错误消息)。 如果有人能够调查这一点,那就太好了。

提前致谢:)

2 个答案:

答案 0 :(得分:2)

您的网络链接未指向正确的位置。如果您使用的是mozilla firefox,请转到Developer部分,在Network - HTML下,您会看到所有下载的html页面。如果没有,请重新加载页面。其中一个是正确的。我已将其包含在以下代码中。

library("httr")
URL <- "https://www.nseindia.com/products/content/derivatives/equities/fo_underlyinglist.htm"
temp <- tempfile(fileext = ".html")
GET(url = URL, user_agent("Mozilla/5.0"), write_disk(temp))

library("XML")
df <- readHTMLTable(temp)
df <- df[[1]]

> head(df)
  S. No.\n    Underlying\n     Symbol
1        1       INDIA VIX   INDIAVIX
2        2        Nifty 50      NIFTY
3        3        Nifty IT    NIFTYIT
4        4      Nifty Bank  BANKNIFTY
5        5 Nifty Midcap 50 NIFTYMID50
6        6       Nifty PSE   NIFTYPSE

答案 1 :(得分:0)

这应该让你入门

library(httr)
site <- GET("https://www.nseindia.com/products/content/derivatives/equities/fo_underlying_home.htm",
         user_agent("Mozilla/5.0"))
content <- content(site, as="text")
parsedHTML = htmlParse(content, asText = TRUE)

我检查了表格的元素,然后复制了ID,并将其输入xpathSApply

xpathSApply(parsedHTML,"//*[@id=\"replacetext\"]/table", xmlValue)

我怀疑UTF-8存在编码问题,但我不是xpath的专家。