我一直在尝试使用软件包rvest
在R中从NSE(国家证券交易所)网站上抓取TATAMOTORS的股票价格。我在其中创建了一个变量nes_link
存储网站的URL。并创建另一个变量nes_page并在其中分配read_html(nes_link)
,但在控制台中没有响应。
library(rvest)
library(dplyr)
library(tidyverse)
nes_link <- "https://www.nseindia.com/get-quotes/equity?symbol=TATAMOTORS"
nes_page <- read_html(nes_link)
price_day1 <- nes_page %>%
html_nodes("span#quoteLtp") %>%
html_text()`
由于该网站使用JavaScript而rvest
不使用,您应该使用RSelenium
:
在你的Shell中:
docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox
Then in R:
library(tidyverse)
library(RSelenium)
remDr <- remoteDriver$new(
remoteServerAddr = "localhost",
port = 4444
)
remDr$open()
remDr$navigate("https://www.nseindia.com/get-quotes/equity?symbol=TATAMOTORS")
remDr$findElement("span#quoteLtp", using = "css")$getElementText()[[1]] %>%
as.numeric()
请检查本网站是否允许网页抓取。