下载整个网站

时间:2013-05-10 15:18:40

标签: ios objective-c ios5 nsurlconnection afnetworking

我希望能够下载网站的全部内容并使用我的应用中的数据。我过去曾使用NSURLConnection下载文件,但我不相信它能够从整个网站下载所有文件。我知道应用Site Sucker,但不认为有办法将其功能集成到我的应用中。我调查了AFNetworking& ASIHttpRequest,但没有看到对我有用的东西。任何想法/想法?感谢。

1 个答案:

答案 0 :(得分:1)

我怀疑你可以使用任何开箱即用的东西,但你提到的现有库(AFNetworking& ASIHttpRequest)会让你走得很远。

这样做的方法是,你加载主网站。然后,您浏览源并找到该页面用于显示其内容并链接到其他页面的任何资源。然后,您需要递归下载这些资源的内容及其资源。

您可以想象,这种方法几乎没有注意事项:

  1. 您只能下载源代码中提到的文件。任何页面未使用的隐藏文件或文件都不会被下载,因为应用程序不知道它们的存在。

  2. 注意相对和绝对路径:./ image.jpg,/ image.jpg,http://website.com/image.jpg,www.website.com / image.jpg等都可以链接到同一图像

  3. 请记住,page1.html可以链接到page2.html,反之亦然。如果您没有进行任何检查,这可能会导致无限循环。

  4. 检查链接到外部网站的网页 - 您可能不想下载这些网页,因为许多网站都有链接到外部,在这里您将整个互联网下载到具有8GB存储空间的iPhone。

  5. 任何动态页面(使用服务器端脚本语言的页面,如PHP)都会变为静态页面,因为它们会丢失服务器后端,为它们提供动态数据。

  6. 这些是我能想到的,但我确信还有更多。