iOS 通过url获取网页文字内容

5 篇文章 0 订阅
4 篇文章 0 订阅

    今天突然有一个需求, 第二个页面要显示一个网页,第一个页面要显示图片标题或者简介等内容,但是!后台仅仅返回了一个URL!这就意味着我必须在第一个页面自己通过URL拿到网页内部我需要的内容.这里就不详细说怎么拿到title或者图片之类的了,我的需求是拿到文章内容的文字部分拿来显示三排就够了:

①拿到网页内容,很简单一句代码

NSString *htmlString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"你的完整URL"] encoding:NSUTF8StringEncoding error:nil];

②正则去除网络标签,一个方法

- (NSString *)getZZwithString:(NSString *)string{
    NSRegularExpression *regularExpretion=[NSRegularExpression regularExpressionWithPattern:@"<[^>]*>|\n" options:0 error:nil];
    string = [regularExpretion stringByReplacingMatchesInString:string options:NSMatchingReportProgress range:NSMakeRange(0, string.length) withTemplate:@""];
    return string;
}

③最后 

NSString *contentStr = [self getZZwithString:htmlString];

contentStr就是我要用于显示的文本了.此方法拿到的文本是url对应网页的文本,所以根据需求自由截取长短.

总结:以上主要是在不需要加载网页的情况下使用的,方便快捷.如果本页面本来就有webView,那就可以通过js代码来获取相应的内容:

- (void)webViewDidFinishLoad:(UIWebView *)webView {

UIWebView *web = webView;

//获取所有的html

NSString *allHtml = @"document.documentElement.innerHTML";

//获取网页title

NSString *htmlTitle = @"document.title";

//获取网页的一个值

NSString *htmlNum = @"document.getElementById('title').innerText";

//获取到得网页内容

NSString *allHtmlInfo = [web stringByEvaluatingJavaScriptFromString:allHtml];

NSLog(@"%@",allHtmlInfo);

NSString *titleHtmlInfo = [web stringByEvaluatingJavaScriptFromString:htmlTitle];

NSLog(@"%@",titleHtmlInfo);

NSString *numHtmlInfo = [web stringByEvaluatingJavaScriptFromString:htmlNum];

NSLog(@"%@",numHtmlInfo);

}

此处引用流浪在简书的文章


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值