如何在 ios 应用程序中以编程方式获取任何站点上图像的 url?

Posted

技术标签:

【中文标题】如何在 ios 应用程序中以编程方式获取任何站点上图像的 url?【英文标题】:How can I get an url of an image on any site programmatically in ios app? 【发布时间】:2012-11-10 18:51:38 【问题描述】:

如何以编程方式获取任何网站上的图片网址?

也许我可以用 AFNetworking 做到这一点?

提前谢谢你!!!

【问题讨论】:

您是在问如何从已有的 URL 加载图像,还是在问如何获取 URL? 我在问如何获取我输入的任何网站上每张图片的 url(例如,我在我的 ios 应用程序的文本字段中输入网站的 url) 您需要解析从 URL 获取的 html,以查找 标记或其他图像引用。 是的,我知道!但是我如何使用 AFNetworking 来做到这一点?它不是 HTML 解析器...也许还有另一种使用 Standart IOS SDK 的方法? 大声笑!由于我很震惊,我没有立即回答xD 【参考方案1】:

加载 html,使用 NSXMLParser 解析它并处理它找到的每个 img 标签的回调。 在那里,您可以询问该图像标签的 src 属性,然后您将获得 url :)

有关如何使用解析器的更多信息,请参阅这篇文章 Using an NSXMLParser to parse HTML

//MOCK-Code
NSXmlParser *p = [[NSXMLParser alloc] initWithURL:pageToParse];
p.delegate = self;
[p parse];

- parserDidStart:(id)nodeOfName withAttributes:(id)listOfAttributes 
    id src = [listOfAttributes objectForKey:@"src"];
    ...

【讨论】:

您意识到NSXMLParser 用于解析XML,而不是HTML。很少有 HTML 是有效的 XML。你读过你引用的链接吗?接受的答案讨论了尝试使用NSXMLParser 解析 HTML 的问题。 是的,我意识到了。当然我读过。我认为我最好为此使用 HTMLParser...但是,如果我在某些网站上使用 NSXMLParser 解析 HTML,我将无法获取图像 url,这是真的吗? @mdaddy 我一直使用它顺便说一句:D 如果 html 无效 xhtml 我 CTidy 它。如果这很糟糕,我会回退到 AQXMLParser(替换掉) @Daij-Djan 这可以在 HTML 上工作吗,我只是无法理解,因为某处写着它可以,而某处写得不好?谢谢s @costa 是的,它是真的.. 没有更多配置它无法解析一些 html。您可以下拉到 libxml2 或 KissXML 或 AQXMLParser。 (github.com/zootreeves/Objective-C-HMTL-Parser 看起来也不错)或者你在 NSXMLParser 之前使用 CTidy .. 那是“轻量级”的方式。

以上是关于如何在 ios 应用程序中以编程方式获取任何站点上图像的 url?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 6 中以编程方式获取设备的当前方向?

在 Ionic 中以编程方式从 Branch 链接解码和获取数据

在 iOS Swift 3 中以编程方式添加 Web 视图时如何在 UIWebView 中获取响应状态代码?

如何在 iPhone sdk 中以编程方式获取设备名称?

如何在iOS 7中以编程方式设置设备方向?

如何在 iOS7 中以编程方式找到连接 3G 网络或 Wifi 的 iPhone 设备