0

アプリケーションで Web ページを解析する必要がありますが、大きな問題が 1 つあります。データです。解析したいページには、時間に応じて 400 ~ 500kb の容量があります。ユーザーのリクエストなどに応じて、1日に数回解析する必要がありますが、標準は1日に10〜20回です。ただし、データが心配です。1 日に 10 ~ 20 回解析すると、1 か月で 150 ~ 300 MB (10 x 30 x 0.5 MB) になります。多くの人が100MBの制限を持っているため、これは多すぎます。または 500MB の制限でさえ、アプリでその半分を食べることができません。

Web ページ データのごく一部しか必要としません。たとえば、Web ページ ソースの一部のみ、または特定のタグのみをダウンロードする方法、圧縮してダウンロードする方法、または 1 回あたり数百 MB を消費することなく他の種類のダウンロードを行う方法はありますか月?

4

2 に答える 2

1

これを行うには、Web サーバーからの協力が必要になる可能性があります。自分の管理下にないサーバーからページをダウンロードする場合、これはおそらく不可能です。

心に留めておくべきことの 1 つは、最新の Web ブラウザーとサーバーは通常、テキストベースのデータを gzip するため、実際に転送されるデータの量は、圧縮されていないページのサイズよりも大幅に少なくなるということです (転送のサイズを大まかに把握するため)。 zip ユーティリティを使用して生の HTML を圧縮してみてください)。

もう 1 つ役立つ可能性があるのは、HTTP Range ヘッダーです。これは、サーバーでサポートされている場合とサポートされていない場合があります。これにより、バイト範囲で指定されたリソースの特定の部分をリクエストできます。

于 2012-09-07T12:00:36.143 に答える
0

私が考える最善の方法は、プロキシサーバーを設定することです。プロキシサーバーは、ページを定期的にダウンロードし、必要なデータを抽出して、より小さく、より適切な形式でアプリに公開します。

wgetたとえば、Linuxサーバーなどのコマンドラインツールcurlを使用してから、スクリプト(php / perl / python / ruby​​ / bash)を使用してデータを解析し、再フォーマットすることができます。次に、Webサーバー(apache / lighttpd)を使用してコンテンツを提供します。

node.js個人的には、このタスクに使用する独自のサーバーの贅沢があれば、私はすべてを行います。

于 2012-09-07T13:01:57.610 に答える