使用Objective-C解析网页的源代码

时间:2009-07-07 20:29:52

标签: iphone objective-c parsing

有没有办法在iPhone上解析网站的来源,以获取该页面上的照片网址?如果是这样你会怎么做?

由于

6 个答案:

答案 0 :(得分:3)

我想去寻找正则表达式 - 有一个单页库可以包含你可以放入项目的c regexest。

答案 1 :(得分:2)

没有超级简单的方法。当我不得不这样做时,我写了一个libxml2 SAX解析器。 libxml2有一个html阅读器,它可以很好地处理格式错误的html,并且libxml2包含在基本系统中。

答案 2 :(得分:2)

我推荐正则表达式。 Cocoa有一个很棒的开源Regex库叫RegexKit。在大多数情况下,您可以将它放在代码中,它“只是工作”。

如果您假设所有图像都在< img>中,那么获取图像的所有网址都不会太困难(少于20行代码)标签。您只需获取所有图像标记(例如:< img \ s + [^>] +>),然后迭代这些匹配。对于每个匹配,你将拉出src属性中的任何内容:src \ s * = \ s *(“|')?\ s *([^ \ s”'] +)(\ s |“|')

您可能需要稍微调整一下,但这不应该太糟糕。

答案 3 :(得分:1)

您可以使用正则表达式尝试它,但我不建议这样做。您应该看看NSXMLParser,假设网页编码为符合XHTML。 TouchXML是另一个很好的库。

答案 4 :(得分:0)

答案 5 :(得分:0)

对于您使用的任何方法没有选择通过JavaScript动态加载的图像,你没问题。

我能看到最接近的工作是解析任何JavaScript导入,加载它们,然后在整个文件中使用正则表达式查找以“.jpg / .gif / .png”结尾的任何内容从中获取完整的URL。 libxml方法会错过对不在img标签中的图像的引用,但它可能已经足够好了。