使用 Java 从 Web 中提取数据 [关闭]

Posted

技术标签:

【中文标题】使用 Java 从 Web 中提取数据 [关闭]【英文标题】:Using Java to pull data from web [closed] 【发布时间】:2014-07-17 09:08:34 【问题描述】:

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

感谢您的帮助。

【问题讨论】:

你已经尝试了什么? 为了避免被否决,请证明您已经完成了一些功课并且您已经尝试了一些事情。 【参考方案1】:

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

无论是哪种编程语言(Java、.NET、Perl...),基本上都有 2 种替代方案:

    该网站有一个 API:在这种情况下,它将是一个 REST 或 SOAP API,或者可能是一个自定义 API(REST 和 SOAP 可能占绝大多数)。如果有的话,请查看该网站的 API 文档。另请查看 Programmable Web 以获取参考资料。 该网站没有 API。然后,您需要执行此处称为屏幕抓取的操作。本质上,您将像浏览器一样发送一系列 HTTP GET 或 HTTP POST 请求。服务器回复包含 html 代码的响应。从那里开始,您需要“解析”HTML 以提取您需要的信息。这将需要重型 XPath(如果内容是 XML)或正则表达式(如果内容是 HTML 或文本)。

查看Apache HTTP Components 以帮助您入门。

如果您想要的只是财务信息,Google 有一个 JSON/REST API 可以帮助您:How can I get stock quotes using Google Finance API?。

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

【讨论】:

"或正则表达式(如果内容是 HTML..." .Never use regular expressions to parse HTML.

以上是关于使用 Java 从 Web 中提取数据 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

从char数组中提取十六进制数[关闭]

如何从网页中提取文本内容? [关闭]

想要使用java中的模式从String中提取一个值[关闭]

使用模式从字符串中提取数据[关闭]

如何在java中提取网页文本内容? [关闭]

使用正则表达式从 txt 中提取数据 [关闭]