0

在我的应用程序中,我有一些网页的 URL,我想通过识别 html 标签从该 URL(其 html 页面)中仅获取特定的部分/部分。

例如,我想<div id="content"> to </div>按照 html 源代码获取部分。这样我就可以将其保存在另一个文件中。

例如,我的网址是 http://www.makepartsfast.com/2012/09/4337/more-3d-printing-in-metals-ex-one-introduces-the-m-flex-3d-printing-system/,其中打开一个html页面。我只想要该页面的一部分。

我该怎么做?

谢谢..

4

4 回答 4

1

这是 Cocoa+NSString 解决方案(工作+测试)。您会看到,当您使用这样的自定义解析器时,唯一真正的技巧是如何找到“结束”点。事实上,你不能只是去 "" 因为其他 div 在中间打开,所以你的解析器会在你正在寻找的内容结束之前停止。我显然不是说没有其他方法可以使用更复杂的 XML 解析器。但是网页并不那么容易解析,它们的代码并不总是完美的......而且这很简单并且有效(您仍然应该考虑获取 URL 内容的另一种方式,而不是 stringWithContentsOfURL: 这不是异步的):

NSString *originalString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.makepartsfast.com/2012/09/4337/more-3d-printing-in-metals-ex-one-introduces-the-m-flex-3d-printing-system/"] encoding:NSUTF8StringEncoding error:nil];

NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSString *extractedString = nil;

[scanner scanUpToString:@"<div id=\"content\">" intoString:nil];
[scanner scanString:@"<div id=\"content\">" intoString:nil];

[scanner scanUpToString:@"<div style=\"clear:both;\">" intoString:&extractedString];

if (extractedString) 
{
    // string was extracted
    NSLog(@"%@", extractedString);
}
于 2012-11-21T09:05:49.400 回答
0

查看Raywenderlich的教程如何在 iOS 上解析 HTML。希望这可以帮助你。

http://www.raywenderlich.com/14172/how-to-parse-html-on-ios

于 2012-11-21T07:41:37.330 回答
0

您可以使用开源库 GDataXMLNode。它允许您操作 xml 文件。看一眼

http://www.raywenderlich.com/725/how-to-read-and-write-xml-documents-with-gdataxml http://code.google.com/p/gdata-objectivec-client/source/browse /trunk/Source/XMLSupport/?r=129

于 2012-11-21T07:42:54.850 回答
0

您最好的选择是使用NSXMLParser搜索属性等于“内容”的div标签。id捕获所有中间内容,直到适当的</div>结束标记。请参阅Apple 的教程

于 2012-11-21T07:45:08.300 回答