java 中的网络抓取和数据处理

web scraping and data processing in java

我正在编写一个网络抓取程序来从雅虎财经、google 财经或纳斯达克提取股票报价。我可以获得包含股票价格的 html 元素,但我只需要结果中的美元价值。例如,示例输出如下图所示:

我在这里使用图片是因为当我发布实际的 html 时,只显示了美元金额(期望的结果),html 实体和标签消失了。 这是我的代码 我对 regEx 不是很熟悉,但我试过了但没有运气。如何从输出中只提取美元金额?

str_replace 会起作用。

它看起来像

$string = str_replace('&nbsp;</td><td>.*?</td>','&nbsp;</td>', $string);

.*? 将使用上面的代码匹配没有 &nbsp; 的标签之间的值。找到正确的分隔符。 .*? or .*(?)

上面的代码将删除每个 <td>number</td> 的标签,同时保留每个 <td>$&nbsp;number&nbsp;</td>

您在哪里找到如何抓取实时财务数据的?是在某处的 xml 提要中吗?

尝试使用 java.util.regex.Matcherjava.util.regex.Pattern:

String pattern = "<td>\$&.+;(\d{1,4}\.\d{2})&";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(inputLine);

if (m.find( )) {
     System.out.println("Price: $" + m.group(1) );
}

结果:

Price: 0.27 ...

示例:

http://ideone.com/fWgvL5#stdout