智能和节俭的HTML解析(无需下载完整的页面源)?

时间:2012-09-07 11:55:20

标签: android html html-parsing

我需要在我的应用程序中解析一些网页,但我有一个大问题 - 数据。我要解析的页面有400-500kb之间的东西,具体取决于时间。我需要每天解析几次 - 取决于用户的要求等,但标准应该是每天10-20次。但是,我担心数据 - 如果我每天解析它10-20次,1个月150-300mb(10 x 30 x 0,5mb)。这太多了,因为很多人都有100mb的限制。甚至500mb的限制,我用我的应用程序不能吃掉一半。

我只需要很少一部分网页数据,有没有办法下载,例如只下载网页源的一部分,或只下载一些特定的标签,或下载压缩,或任何其他类型的下载而不吃数百每月mb?

2 个答案:

答案 0 :(得分:1)

这样做可能需要网络服务器的一些合作,如果你从不受你控制的服务器下载页面,那么这可能是不可能的。

要记住的一点是,现代网络浏览器和服务器通常会对基于文本的数据进行gzip,因此传输的实际数据量将明显少于页面的未压缩大小(以便大致了解如何传输将很大,尝试使用zip实用程序来压缩原始HTML。)

可能有用的另一件事是HTTP Range header,您的服务器可能支持也可能不支持 - 这允许您请求由字节范围指定的资源的特定部分。

答案 1 :(得分:0)

我能想到的最好的方法是设置代理服务器,它会定期下载页面,并提取您需要的数据,以更小,更合适的格式将其公开给您的应用程序。

例如,您可以在Linux服务器上使用命令行工具,如wgetcurl,然后使用脚本(php / perl / python / ruby​​ / bash)来解析数据,重新格式化它。然后,您将使用Web服务器(apache / lighttpd)提供内容。

就个人而言,如果您有自己的服务器可以用于此任务,我会在node.js中完成整个事情。