【问题标题】:Yahoo Finance Headlines webpage scraping with R使用 R 抓取 Yahoo Finance Headlines 网页
【发布时间】:2013-10-02 12:56:16
【问题描述】:

我想使用 R 下载任何雅虎财经头条网页的 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)]

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

非常感谢!

【问题讨论】:

  • 您的网址不正确:您可能想要http://finance.yahoo.com/q/h?s=AAPL+Headlines,使用h(标题)而不是ks(关键统计信息)。
  • 你是对的:我编辑了 OP。谢谢!

标签: html r web web-scraping


【解决方案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)

【讨论】:

  • 非常感谢您的支持!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
  • 2020-03-12
  • 1970-01-01
相关资源
最近更新 更多