如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章
在 Ionic 中以编程方式从 Branch 链接解码和获取数据