使用 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 中提取数据 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章