我使用HTMLTreeParser获取此结构,我需要在页面中包含文本
doc <- htmlTreeParse(url, useInternalNodes = FALSE)
doc
$file
[1] "http://www.google.com/trends/fetchComponent?q=asdf,qwerty&cid=TIMESERIES_GRAPH_0&export=3"
$version
[1] ""
$children
$children$html
<html>
<body>
<p>// Data table response google.visualization.Query.setResponse([INSERT LOT OF JSON HERE])</p>
</body>
</html>
attr(,"class")
[1] "XMLDocumentContent"
我正在寻找“p”区块上的内容。我今天没有找到任何可以帮助我的东西 那么,我该如何获得这些数据?
答案 0 :(得分:0)
如果要在文档上运行XPath,则需要设置useInternalNodes = TRUE
(请参阅有关此参数的文档)。以下代码可以帮助您开始使用XPath。
[注意:当我运行你的代码时,我得到一个错误页面,而不是你得到的文件。]
library(XML)
url <- "http://www.google.com/trends/fetchComponent?q=asdf,qwerty&cid=TIMESERIES_GRAPH_0&export=3"
doc <- htmlTreeParse(url, useInternalNodes = T)
# XPath examples
p <- doc["//p"] # nodelist of all the <p> elements (there aren't any...)
div <- doc["//div"] # nodelist of all the <div> elememts
scripts <- doc["//script"] # nodelist of all the <script> elements
b.script <- doc["//body/script"] # nodelist of all <script> elements within the <body>
# title of the page
xmlValue(doc["//head/title"][[1]])
# [1] "Google Trends - An error has been detected"
基本上,您可以使用XPath字符串,就好像它是文档的索引一样。所以在你的情况下,
xmlValue(doc["//p"][[1]])
应该返回<p>
doc
元素中包含的文本