主要内容是关于使网页在移动设备上可读。解析器提供了足够的选项,可以为您提供根据普通的网页 URL 或内容HTML 文档,包含仅包含主要文章内容的清晰标记。还有一个选项可以下载和嵌入图片,这样您就可以完全离线使用文档,将其加载到 WebView 中。
基本概念是在 Curtis Hard 的仓库中找到的(https://github.com/curthard89/COCOA-Stuff/tree/master/GGReadabilityParser),并大大改进了新功能:iOS 兼容性(多亏了 HTMLReader 项目)、新的清洁选项、图片下载选项、CSS 选择器而不是 XPath、ARC、性能优化。
请随时提交错误和 pull 请求。
我没有发现类似的项目,所以如果您知道一些,请通过 pm 联系我。
了解使用此代码的项目也很好,如果您这样做,请让我知道。
要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install
。
使用很简单,您必须创建一个新的 DZReadability 对象(如下所示),该对象包含要下载和解析的文档的 URL):
self.readability = [[DZReadability alloc] initWithURLToDownload:docUrl options:nil completionHandler:^(DZReadability *sender, NSString *content, NSError *error) {
if (!error) {
NSLog(@"result content:\n%@", content);
// handle returned content
}
else {
// handle error
}
}];
[self.readability start];
如果您已经有了想要解析的内容,您可以调用
NSString *html = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"]; // or any other html as string
readability = [[DZReadability alloc] initWithURL:docUrl rawDocumentContent:html options:nil completionHandler:^(DZReadability *sender, NSString *content, NSError *error) {
if (!error) {
NSLog(@"result content:\n%@", content);
// handle returned content
}
else {
// handle error
}
}];
[readability start];
ARC
OSX >= 10.7
iOS >= 5.0
dependency 'HTMLReader'
您可能需要 CSS 样式来使文档看起来更好。基本上,CSS 样式应使图片适合 webview,分配好的字体,并处理表格标记及其宽度。您应该在文档的页眉部分准备包含 CSS 样式的模板,然后将解析器提供的内容插入到 HTML 模板的主体部分。如果您计划使用 UIWebView 向用户展示清理后可读的文档,这是必需的。
不幸的是,我无法提供确切的 CSS 样式和 HTML 模板,因为它们不是我的知识产权。您自己找出它们吧。请考虑发出 pull 请求。谢谢!
Denis Zamataev, [email protected]
Curtis Hard,https://github.com/curthard89(《COCOA-Stuff》仓库中的GGReadabilityParser:https://github.com/curthard89/COCOA-Stuff/tree/master/GGReadabilityParser)
DZReadability 在MIT许可证下可用。更多信息请参阅LICENSE文件。