首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java中的web抓取和数据处理

java中的web抓取和数据处理
EN

Stack Overflow用户
提问于 2015-05-19 03:15:00
回答 2查看 409关注 0票数 4

我正在编写一个网络刮刀程序,从雅虎金融,谷歌金融或纳斯达克提取股票报价。我可以得到包含股票价格的html元素,但是我只需要从结果中获得美元值。例如,示例输出如下所示:

我在这里使用一个图像,因为当我发布实际的html时,只有美元数量(期望的结果)出现,html实体和标记就消失了。这是我的密码

我对regEx不是很熟悉,但我试过了,但没有运气。如何从输出中只提取美元金额?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-19 03:56:02

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

代码语言:javascript
运行
复制
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) );
}

结果:

价格:130.27美元.

示例:

http://ideone.com/fWgvL5#stdout

票数 1
EN

Stack Overflow用户

发布于 2015-05-19 03:26:38

str_replace会工作的。

看起来就像

代码语言:javascript
运行
复制
$string = str_replace('&nbsp;</td><td>.*?</td>','&nbsp;</td>', $string);

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

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

你在哪里找到了如何收集实时金融数据?它在某个xml提要中吗?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30316124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档