【问题标题】:If I wanted to take the data from the webpage using Java, where would I start?如果我想使用 Java 从网页中获取数据,我应该从哪里开始?
【发布时间】:2011-05-30 23:31:54
【问题描述】:

自从 Google 开始提供非常好的 cinema listings 布局以来,我想制作一个 Android 应用程序,用户可以从该页面获取信息并将其显示在他们输入的区域。

我不是在问如何制作应用程序,而是在使用 Java 时,我将如何从该网页动态获取信息?我可以将其解析为 XML 吗?这种方式似乎有点棘手。

【问题讨论】:

标签: java android html xml parsing


【解决方案1】:

从字面上回答“标题”问题,请参阅我对这个问题的回答,了解如何使用 Web url 获取原始 html... Android Dev: How do I extract data from the web and use the data in my app?

我这样做并使用名为 HtmlCleaner 的第 3 方类,它返回 XML,可以使用 XPATH 进行搜索。

然而,正如已经说过的,可能有更好的方法来做你想做的事,尤其是来自 CommonsWare 的评论太真实了。这很痛苦,而且 html 中最轻微的变化都会完全破坏您的解析代码并要求您重新编写内容。

【讨论】:

    【解决方案2】:

    我进行了一次快速的 Google 搜索,但找不到电影院列表的 Google API,尽管您可以查看它们是否在 Google Base API 中公开了这些。

    另一种选择是使用 Yahoo Query Language API。他们确实有一个可以在 Java 中查询的放映时间 API。这是您将使用的 YQL 语法:

    select * from movies.showtimes
    

    获取所有电影的列表。那么:

    select * from movies.showtimes where location='myzip' and name='one of the movies'
    

    你也可以

    select * from movies.showtimes where location='myzip' and name in whatever
    

    您可以使用控制台在此处发现此 API 提供的功能:http://developer.yahoo.com/yql/console/?env=http://datatables.org/alltables.env#h=desc%20movies.showtimes

    就实现而言,我不是 Java 开发人员(主要是 LAMP 和 .NET),所以我无法为您提供代码示例,但 YQL API 是一个 RESTful API,因此您只需使用该 API请求中的正确参数,它将返回 XML 结果。

    希望这将帮助您找到所需的内容!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-05
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 2011-09-28
      相关资源
      最近更新 更多