我想从下面提到的网页访问包含证券列表的表格。
https://www.nseindia.com/products/content/derivatives/equities/fo_underlying_home.htm
我对R比较陌生,我试过这个论坛提供的解决方案 readLines()方法,尝试使用XML库,即readHTMLTable()方法,但无法从网页访问该表。此外,我还尝试使用GET()使用Chrome作为user_agent(因为我收到了禁止的错误消息)。 如果有人能够调查这一点,那就太好了。
提前致谢:)
答案 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的专家。