gpt4 book ai didi

android - 在 Android 中抓取 HTML 网页的最快方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 22:12:20 25 4
gpt4 key购买 nike

我需要从 Android 中的非结构化网页中提取信息。我想要的信息嵌入在没有 id 的表中。

<table> 
<tr><td>Description</td><td></td><td>I want this field next to the description cell</td></tr>
</table>

我应该使用

  • 模式匹配?
  • 使用 BufferedReader 提取信息?

或者有没有更快的方法来获取这些信息?

最佳答案

我认为在这种情况下,寻找一种快速方法来提取信息是没有意义的,因为答案中已经建议的方法之间几乎没有性能差异当您将其与 下载 HTML 所需的时间进行比较时。

所以假设 最快 你的意思是最方便、可读和可维护的代码,我建议你使用 DocumentBuilder 使用 XPathExpression 解析相关的 HTML 并提取数据年代:

Document doc = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse(new InputSource(new StringReader(html)));

XPathExpression xpath = XPathFactory.newInstance()
.newXPath().compile("//td[text()=\"Description\"]/following-sibling::td[2]");

String result = (String) xpath.evaluate(doc, XPathConstants.STRING);

如果您碰巧检索到无效的 HTML,我建议隔离相关部分(例如使用 substring(indexOf("<table").. )并在必要时使用 String 更正剩余的 HTML 错误解析前的操作。但是,如果这变得太复杂(即 非常糟糕 HTML),请使用其他答案中建议的 hacky 模式匹配方法。

备注

  • XPath 从 API 级别 8 (Android 2.2) 开始可用。如果您为较低的 API 级别进行开发,您可以使用 DOM 方法和条件来导航到您要提取的节点

关于android - 在 Android 中抓取 HTML 网页的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2971155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com