我需要在我的应用程序中解析一些网页,但我有一个大问题 - 数据。我要解析的页面有400-500kb之间的东西,具体取决于时间。我需要每天解析几次 - 取决于用户的要求等,但标准应该是每天10-20次。但是,我担心数据 - 如果我每天解析它10-20次,1个月150-300mb(10 x 30 x 0,5mb)。这太多了,因为很多人都有100mb的限制。甚至500mb的限制,我用我的应用程序不能吃掉一半。
我只需要很少一部分网页数据,有没有办法下载,例如只下载网页源的一部分,或只下载一些特定的标签,或下载压缩,或任何其他类型的下载而不吃数百每月mb?
答案 0 :(得分:1)
这样做可能需要网络服务器的一些合作,如果你从不受你控制的服务器下载页面,那么这可能是不可能的。
要记住的一点是,现代网络浏览器和服务器通常会对基于文本的数据进行gzip,因此传输的实际数据量将明显少于页面的未压缩大小(以便大致了解如何传输将很大,尝试使用zip实用程序来压缩原始HTML。)
可能有用的另一件事是HTTP Range header,您的服务器可能支持也可能不支持 - 这允许您请求由字节范围指定的资源的特定部分。
答案 1 :(得分:0)
我能想到的最好的方法是设置代理服务器,它会定期下载页面,并提取您需要的数据,以更小,更合适的格式将其公开给您的应用程序。
例如,您可以在Linux服务器上使用命令行工具,如wget
或curl
,然后使用脚本(php / perl / python / ruby / bash)来解析数据,重新格式化它。然后,您将使用Web服务器(apache / lighttpd)提供内容。
就个人而言,如果您有自己的服务器可以用于此任务,我会在node.js
中完成整个事情。