我一直试图从这个网站上搜索实时报价,但我遇到了错误。我使用的代码如下所示
library(XML)
webpage='http://quotes.freerealtime.com/dl/frt/M?SA=Percent+Gainers&IM=stats&stat=3'
# parse url
url_parsed <- htmlParse(getURL(webpage), asText = TRUE)
# select table nodes of interest
tableNodes <- getNodeSet(url_parsed, '/html/body/table[2]/tbody/tr/td[4]/table[2]/tbody/tr[2]/td/table')
但tableNodes
原来是NULL
。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
我认为以下链接解释了您的主要问题
因此以下内容会返回值
tableNodes <- getNodeSet(url_parsed, '/html/body/table[2]/tr/td[4]/table[2]/tr[2]/td')
但由于实际的表是由js渲染的,因此您将无法访问它。
我建议查看以下内容:
https://www.datacamp.com/community/tutorials/scraping-javascript-generated-data-with-r
答案 1 :(得分:0)
该网页使用AJAX。您可以在Chrome中打开网页,然后按F12打开“开发者工具”,然后转到“网络”标签。刷新网页,并检查记录的XHR。
网页上的表格分为4个部分,因此您可以找到4个记录的请求,其中包含http://app.quotemedia.com/quotetools/scalingMarketStats.go?webmasterId=100804&toolWidth=620&statExchange=NSD&stat=pg&statTop=15&targetsym=symbol&detailURL=http://quotes.freerealtime.com/dl/frt/M%3fIM=quotes%26type=Quote%26SA=quotes%26symbol=symbol&sid=0等网址所需的数据。每个HTML响应中都有两个<table>
个标记。提取第二个(嵌套)表,它包含必要的数据:
您可以在http://quotes.freerealtime.com/dl/frt/M?SA=Percent+Gainers&IM=stats&stat=3第一次记录的请求中的网页HTML内容中找到这些网址。
请尝试以下步骤从网站上抓取实时报价:
app.quotemedia.com/quotetools/scalingMarketStats.go
的所有网址。