0

因此,在提取整个 HTML 代码之前,我使用 Android Java 中的 HTTP Post Requests 登录网站。之后,我使用 Pattern/Matcher (regex) 来查找我需要的所有元素,然后从 HTML 数据中提取它们,并删除所有不必要的内容。例如当我提取这个:

String extractions = <td>Good day sir</td>

然后我使用:

extractions.replaceAll("<td>", "").replaceAll("</td>", ""); 

我会多次执行此操作,直到获得该站点所需的所有数据,然后再将其显示在某种列表中。

我并没有特别拘泥于任何事情,但是请你告诉我这是否是从页面获取数据并处理它的一种有效/高效/快速的方式,或者有没有办法更快地做到这一点?因为有时它就像我的程序需要花费大量时间来获取某些数据(尽管主要是当我在手机上使用 3G 时)。

4

3 回答 3

0

使用正则表达式解析网站总是一个坏主意:

Java中如何使用正则表达式解析HTML?

使用正则表达式解析 HTML:为什么不呢?

于 2012-04-04T08:58:25.273 回答
0

查看用于从 HTML 中提取文本的 Apache Tika 库 - 还有许多其他解析器可用,例如 PDF 等:http ://tika.apache.org/

于 2012-04-04T09:34:19.600 回答
0

正如其他人所说,正则表达式不是这项工作的最佳工具。但在这种情况下,您使用正则表达式的特定方式甚至​​比通常情况下效率更低。

无论如何,让我提供另一种可能的解决方案(取决于您的用例)。

它被称为 YQL(雅虎查询语言)。 http://developer.yahoo.com/yql/

这是它的控制台,因此您可以使用它。 http://developer.yahoo.com/yql/console/

YQL 是懒惰的开发人员动态构建自己的 api 的方式。主要的不便之处在于您必须使用雅虎作为中间人,但如果您对此表示满意,那么我建议您走那条路。使用 YQL 可能是完成此类工作的最快方法(特别是如果您的目标 html 不断变化并且其 html 标记并不总是有效)。

于 2012-04-04T09:29:04.097 回答