0

Web サイトのコンテンツ全体をダウンロードして、アプリでデータを使用できるようにしたいと考えています。過去に NSURLConnection を使用してファイルをダウンロードしたことがありますが、Web サイト全体からすべてのファイルをダウンロードできるとは思えません。アプリSite Suckerは知っていますが、その機能をアプリに統合する方法はないと思います。AFNetworking と ASIHttpRequest を調べましたが、役に立つものは何もありませんでした。アイデア/考えはありますか?ありがとう。

4

1 に答える 1

1

すぐに使用できるものはないと思いますが、あなたが言及した既存のライブラリ (AFNetworking & ASIHttpRequest) を使用すると、かなり遠くまで行くことができます。

これが機能する方法は、メインの Web サイトをロードすることです。次に、ソースを調べて、そのページがそのコンテンツを表示し、他のページにリンクするために使用するリソースを見つけます。次に、それらのリソースのコンテンツとそのリソースを再帰的にダウンロードする必要があります。

ご想像のとおり、このアプローチにはいくつかの注意事項があります。

  1. ソース コードに記載されているファイルのみをダウンロードできます。非表示のファイルまたはどのページでも使用されていないファイルは、アプリがその存在を認識しないため、ダウンロードされません。

  2. 相対パスと絶対パスに注意してください: ./image.jpg、/image.jpg、http://website.com/image.jpg、www.website.com/image.jpgなどはすべて同じ画像にリンクしている可能性があります.

  3. page1.html は page2.html にリンクでき、その逆も可能であることに注意してください。チェックを行わないと、無限ループが発生する可能性があります。

  4. 外部の Web サイトにリンクしているページを確認してください。多くの Web サイトには外部へのリンクがあり、ここでは 8 GB のストレージを備えた iPhone にインターネット全体をダウンロードしているため、おそらくそれらをダウンロードしたくないでしょう。

  5. 動的ページ (PHP などのサーバー側スクリプト言語を使用するページ) は、動的データを提供するサーバー バックエンドを失うため、静的になります。

これらは私が思いついたものですが、他にもあると確信しています。

于 2013-05-10T15:40:26.380 に答える