在这个大千世界里无奇不有,当然各种奇怪的需求也是层出不穷,这当然需要我们的脑瓜子转的更快,来适应。
前几天的一个单位A的外包项目,需要从他的网站外包单位B,通过外包单位C(我们单位)APP展示他们的网站内容,需求是要实现对网站信息的收藏啦,点赞啦,还有别的功能,前提是,就给一个网址,剩下的都是我们的工作,呵呵呵,那么问题就来了,对于网址源码里面有需要的信息,该怎么取到呢?我是一个比较懒的程序员,所以我只想一个工具类的一行代码就拿到我想要的标签对应的内容,所以,我写了这么一个类GetHTMLTags。当然它适用于网页信息截取,但不局限于这个,可以对你拥有的一段文字进行截取,找到你所需要的那个,下面简单介绍下这个工具类:
1. 获取到所有相同标签下的字符串:例如获取标签<title>后面的所有字符
/**
获取主要标签内的字符数组(htmlString是通过[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"]获取到的网页源码)
@param htmlString 主字符串
@param tag 所需要获取的标签字符串
@return 获取到的包含大致信息的字符串
*/
+ (NSMutableArray *)GetMainTagIn:(NSString *)htmlString mainTag:(NSString *)tag;
2.精确获取到所需要的标签内容
/**
获取到精确的字符
@param HTMLstringArray 主要标签内的字符数组
@param tagArray HTML标签的前半部分辨标签数组
@param smallTag HTML标签的后半部
@return 返回获取到的精确的字符
*/
+ (NSMutableArray *)GetlittleTag:(NSMutableArray *)HTMLstringArray littleTag:(NSArray<NSString *> *)tagArray smallTag:(NSString *)smallTag;
例如:文本 <a class="logo" href="/"></a>,假如想获取//cdn2.jianshu.io/assets/web/logo58fd04f6f0de908401aa561cda6a0688.png这个图片链接的话只需要下面的调用方法就可以:(其中的littleTag要按顺序放进数组里面)
NSMutableArray *imgArray = [GetHTMLTags GetlittleTag:@[@"刚才的那段标签"] littleTag:@[@"<a",@"src=\""] smallTag:@"\""];
至于截取字符串和上面演示的一样,接下来附上demo地址:GetHTMLTags