史上最简单的网页源码截取(OC版)

在这个大千世界里无奇不有,当然各种奇怪的需求也是层出不穷,这当然需要我们的脑瓜子转的更快,来适应。
好东西,就要分享.png
前几天的一个单位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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,699评论 25 708
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • 落霞残阳西江月, 孤舟飞叶鹭已绝。 草堂小饼好味道, 莫道细风吹云阙。 ...
    乐陵君阅读 254评论 0 1
  • 文/冬月之恋 太阳一竿子高了,大地仿佛刚刚从几小时前的岑寂中苏醒过来,薄雾笼罩的天空一下子变得亮堂堂的,空气里闪着...
    冬月之恋阅读 742评论 12 18