iOS 通過url擷取網頁文字內容__iOS

來源:互聯網
上載者:User

    今天突然有一個需求, 第二個頁面要顯示一個網頁,第一個頁面要顯示圖片標題或者簡介等內容,但是!後台僅僅返回了一個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;//擷取所有的htmlNSString *allHtml = @"document.documentElement.innerHTML";//擷取網頁titleNSString *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);}此處引用流浪在簡書的文章


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.