我希望能够下载网站的全部内容并在我的应用程序中使用这些数据。我过去曾使用 NSURLConnection 下载文件,但我不相信它能够从整个网站下载所有文件。我知道应用程序Site Sucker,但不认为有办法将它的功能集成到我的应用程序中。我查看了 AFNetworking 和 ASIHttpRequest,但没有看到任何对我有用的东西。有什么想法/想法吗?谢谢。
问问题
457 次
1 回答
1
我怀疑您可以使用开箱即用的任何东西,但是您提到的现有库(AFNetworking 和 ASIHttpRequest)会让您走得很远。
它的工作方式是,您加载主网站。然后,您浏览源代码并找到该页面用于显示其内容和链接到其他页面的任何资源。然后,您需要递归下载这些资源的内容及其资源。
可以想象,这种方法几乎没有注意事项:
您将只能下载源代码中提到的文件。不会下载任何页面未使用的隐藏文件或文件,因为应用程序不知道它们的存在。
注意相对路径和绝对路径:./image.jpg、/image.jpg、http://website.com/image.jpg、www.website.com/image.jpg等都可以链接到同一张图片.
请记住,page1.html 可以链接到 page2.html,反之亦然。如果您不进行任何检查,这可能会导致无限循环。
检查链接到外部网站的页面——您可能不想下载那些,因为许多网站都有外部链接,在这里您将整个互联网下载到具有 8GB 存储空间的 iPhone 上。
任何动态页面(使用服务器端脚本语言的页面,例如 PHP)都将变为静态页面,因为它们失去了为它们提供动态数据的服务器后端。
这些是我能想到的,但我相信还有更多。
于 2013-05-10T15:40:26.380 回答