使用Java从Web提取数据

时间:2014-05-28 08:37:40

标签: java screen screen-scraping yahoo stock

我想知道是否有办法使用java(eclipse)从网站中提取特定数据。例如,来自Yahoo Finances或Bloomberg的股票信息。我环顾四周并找到了一些资源,但我还没有能够让他们工作,也许我错过了一些东西或者他们已经过时了。如果可能的话,我也想避免下载任何外部资源,我已经阅读了JSoup,如果其他所有方法都失败了,我会更认真地考虑它。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

答案是:是的,有很多不同的方法从网站提取数据。

无论编程语言(Java,.NET,Perl ...),基本上有两种选择:

  1. 该网站有一个API:在这种情况下,它将是一个REST或SOAP API,也可能是一个自定义API(REST和SOAP可能占绝大多数)。查看该网站的API文档(如果有)。另请查看Programmable Web以获取参考。
  2. 该网站没有API。然后你需要做你在这里称之为屏幕抓取的东西。基本上,您将发送一系列HTTP GET或HTTP POST请求,就像您的浏览器一样。服务器回复包含HTML代码的响应。从那以后,您需要“解析”HTML以提取所需的信息。这将需要重型XPath(如果内容是XML)或正则表达式(如果内容是HTML或文本)。
  3. 请看Apache HTTP Components让您入门。

    如果你想要的只是财务信息,谷歌就有一个JSON / REST API,而且有一个关于SO的问题可以帮助你:How can I get stock quotes using Google Finance API?

    雅虎也有一个,在SO中也有一个问题:Yahoo Finance All Currencies quote API Documentation