Java 从没有API的网站检索信息

Java 从没有API的网站检索信息,java,android,html,Java,Android,Html,我正在开发一个Android应用程序,它是用Java编程的。我以前使用过API,但是我想知道是否可以在没有API的情况下检索信息 例如,尝试检索操作小时数。如果我在操作时间上单击inspect元素,我可以看到它们位于名为“hours”的标题下。我可以利用这些HTML标签吗?也就是说,抓取标题/段落,解析它,并检索所需的结果 谢谢大家! 另外,对于这个新手的问题,我很抱歉,我不知道如何正确地表达它,这样我才能收到相关的谷歌结果。我想在@Luciano Rodríguez的评论中添加一些内容 正如您

我正在开发一个Android应用程序,它是用Java编程的。我以前使用过API,但是我想知道是否可以在没有API的情况下检索信息

例如,尝试检索操作小时数。如果我在操作时间上单击inspect元素,我可以看到它们位于名为“hours”的标题下。我可以利用这些HTML标签吗?也就是说,抓取标题/段落,解析它,并检索所需的结果

谢谢大家!


另外,对于这个新手的问题,我很抱歉,我不知道如何正确地表达它,这样我才能收到相关的谷歌结果。

我想在@Luciano Rodríguez的评论中添加一些内容

正如您所知,您可以读取HTTP响应的内容,然后将其解析为HTML。正如您提到的,您可以访问特定元素并获取其值

现在的问题是您的应用程序应该具有多大的通用性。例如,如果您想从一个特定站点获取几个字段,那么您已经拥有了所有工具。获取HTML,使用一个可用的HTML解析器对其进行解析以提取数据,就完成了

然而,如果您正在构建支持各种站点并可配置的通用应用程序,您就会遇到问题

首先,您必须能够从DOM中提取任何数据。我个人现在也在做类似的工作。我使用HTMLCleaner从HTML和XPath获取DOM来配置感兴趣的节点。但这并不是全部。现代网站是非常动态的。通常,信息不是在服务器站点以HTML的形式生成的,而是由在客户端站点上运行的javascript动态生成的。支持这种情况并不简单。通常,在我的头顶上有两种方法:

  • 使用功能齐全的无头浏览器来播放web应用程序并创建DOM。然后可以使用XPath从DOM获取数据
  • 从源代码获取数据,例如HTML、XML、JSON等。这种方法需要为您想要支持的每个站点进行额外的配置
    你需要把这一页作废。做一个HTTPRequest并解析接收到的html以找到所需的数据。虽然解析大量html可能会降低应用程序的速度,但有一些库(如Jsoup)可以帮助您完成任务。首先,感谢您的补充意见。我希望建立一个非常具体的应用程序,只是为了获得这方面的经验,所以我想我会放弃HTML。我有一个问题:在我提供的链接中,工作时间在标记内,但是该页面中有许多标记。斗士怎么知道该抓哪一个?或者我要告诉废品商我想要在X中找到的,等等?如果你必须得到非常特定的标记,你甚至可以使用正则表达式来解析它。我相信时间格式非常简单,所以可以使用类似regex的
    \d{1,2}:\d{1,2}

    之类的东西。通常,如果您想要更健壮的解决方案,您应该基于路径进行解析,即如您所说的位于
    下的
    ,甚至是从根
    标记开始的完整路径。