1

我想使用 R 下载任何 Yahoo Finance Headlines 网页的 HTML 代码,选择“标题”并在 Excel 中收集它们。不幸的是,将源文件下载到 R 后,我无法找到并选择与标题对应的 HTML 节点。

让我用一个例子来说明这个问题。我从

source <- "http://finance.yahoo.com/q/h?s=AAPL+Headlines"
file <- "destination/finance_file.cvs"
download.file(url = source, destfile = file)
 x = scan(file, what = "", sep = "\n")

生成 Excel 文件finance_file.cvs,最重要的是,生成字符x.

使用x我想收集标题并将它们写入第二个 Excel 文件的列中,称为headlines.cvs.

我现在的问题如下:如果我选择任何标题,我可以在网页本身的 HTML 代码中找到它,但我在x. 因此,我不知道如何提取它。

对于我正在考虑的提取

x = x[grep("some string of characters to do the job", x)]

但我不是网络抓取专家。有什么想法/建议吗?

我非常感谢你!

4

1 回答 1

1

您可以使用该XML包并编写提取标题所需的 XPath 查询。

由于网页看起来像:

...
<ul class="newsheadlines"/>
<ul>
  <li><a href="...">First headline</a></li>
  ...

你得到以下查询。

library(XML)
source <- "http://finance.yahoo.com/q/h?s=AAPL+Headlines"
d <- htmlParse(source)
xpathSApply(d, "//ul[contains(@class,'newsheadlines')]/following::ul/li/a", xmlValue)
free(d)
于 2013-09-26T17:16:14.833 回答