您建议我以何种方式将网站(包含所有图片的HTML网站)下载到iPhone?
问题是如何抓取所有那些微小的部分(Javascripts,图像,CSS)并在本地保存它们。这不是具体实现(我知道如何使用NSURLRequest和东西。我正在寻找爬行/蜘蛛方法)。
越狱不起作用,因为它适用于官方(App Store)应用程序。
此致
的Stefan
答案 0 :(得分:3)
下载?或者获取网站的HTML源代码并使用UIWebView
显示它?
如果是最后一个,你可以这样做:
NSString *data = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://apple.com"] encoding:NSUTF8StringEncoding error:NULL];
// Load UIWebView with data
[webView loadHTMLString:data baseURL:[NSURL URLWithString:@"http://apple.com"]];
修改强> 对于这种方法,您可能最好使用iPhone的正则表达式库来解析字符串并找到所需的对象。
您可以使用此RegexKitLite,然后执行几个正则表达式查找,例如<link rel="%" href="*">
和src="*"
。但是你必须记住存储它们并用新路径替换*的值。
存储文件:
您将从正则表达式方法中获取url,并且可以从URL中编写文件:
NSFileManager *fileManager = [[NSFileManager alloc] init];
NSString rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString pathToCurrentSite = [rootPath stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@/", fullUrlToPage]];
for (urlString in urlStrings) {
NSData *stringData = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
[fileManager createFileAtPath:[pathToCurrentSite stringByAppendingPathComponent:urlString] contents:stringData attributes:nil];
}
NSString *data;
NSData *pageData = [data dataUsingEncoding:NSASCIIStringEncoding];
[fileManager createFileAtPath:[pathToCurrentSite stringByAppendingPathComponent:@"index"] contents:pageData attributes:nil];
[fileManager release];
答案 1 :(得分:0)
使用spanning hosts选项从网站下载所有内容。
wget -rH -Dserver.com http://www.server.com/
但为什么要在移动设备上执行此操作?这是应该在具有大量内存,磁盘空间,带宽和多个CPU核心的真实计算机上完成的事情。
答案 2 :(得分:0)
正在寻找类似的功能并找到了这个。无法为此声明任何功劳,只是想确保它对那些对此感兴趣的人提及(作为一种插件解决方案)。
答案 3 :(得分:-1)
您无法将网站保存到手机中,只能查看它们(除非您的越狱。)
希望这可以解决你的困惑, 李。
答案 4 :(得分:-1)
以下是Appstore链接https://itunes.apple.com/us/app/sitesucker/id346896838?mt=8 该应用程序将整个网站原生下载到手机上。