0

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

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

4

2 回答 2

1

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

要记住的一件事是,现代 Web 浏览器和服务器通常 gzip 基于文本的数据,因此实际传输的数据量将大大小于未压缩的页面大小(大致了解传输的大小将是,尝试使用 zip 实用程序来压缩原始 HTML)。

可能有帮助的另一件事是HTTP Range 标头,您的服务器可能支持也可能不支持 - 这使您可以请求由字节范围指定的资源的特定部分。

于 2012-09-07T12:00:36.143 回答
0

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

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

node.js就个人而言,如果您有自己的服务器来完成这项任务,我会在.

于 2012-09-07T13:01:57.610 回答