ios tfhpple iteye 抓取

简介:    1.使用 tfhpple    1.1.导入TFHpple   1.2.引入静态库文件libxml2.2.tbd 不是 libxml2.dylib ,ios9 xcode7不使用了   2.




 
 

1.使用 tfhpple 

  1.1.导入TFHpple

  1.2.引入静态库文件libxml2.2.tbd 不是 libxml2.dylib ,ios9 xcode7不使用了

 

2. 使用 xpath 获取数据 节点



 
//*[@id="index_main"]/div/div/h3/a

 

F12    输入 $x("//*[@id='index_main']/div/div/h3/a") 

 

 

 

 

userName	//*[@id='index_main']/div[2]/div/div[3]/a/text()
 userPicLink    //*[@id='index_main']/div[2]/div/div[1]/div/a/img/    src
 userBlogLink   //*[@id='index_main']/div[2]/div/div[3]/a             href
 title          //*[@id='index_main']/div[2]/div/h3/a/text()
 content        //*[@id='index_main']/div[2]/div/div[1]/text()[2] 
 articleLink    //*[@id='index_main']/div[2]/div/h3/a                 href
 seeNum         //*[@id='index_main']/div[2]/div/div[3]/span[2]/text()
 goodNum        //*[@id='index_main']/div[2]/div/div[3]/div/div/a[1]/text()
 badNum         //*[@id='index_main']/div[2]/div/div[3]/div/div/a[2]/text()
 insertTime     //*[@id='index_main']/div[2]/div/div[3]/span[3]/text()
 type
 html

 

 

 

 

3. 代码部分

url = http://www.iteye.com/blogs 

 

 

 

page = 0;
    category = 0;
    [self request];
}

-(void) request{
     NSString *url = [UrlUtil getIteyeBlog:category page:page];
//    [ IteyeBlogAFNetworkingUtil httpRequestWithUrl:url success:^(NSString *result) {
//        
//        NSLog(@"success =====");
//       
//    } fail:^{
//        NSLog(@"error =====");
//    }];
    
    NSLog(@"%@",url);

    NSData *htmlData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:url]];
    TFHpple * doc      = [[TFHpple alloc] initWithHTMLData:htmlData];
   
   
    NSArray *arrArticleLink= [doc searchWithXPathQuery:@"//*[@id='index_main']/div/div/h3/a"];
    NSArray *arrBadNum= [doc searchWithXPathQuery:@"//*[@id='index_main']/div/div/div[3]/div/div/span[2]/text()"];
    NSArray *arrGoodNum= [doc searchWithXPathQuery:@"//*[@id='index_main']/div/div/div[3]/div/div/span[1]/text()"];
    NSArray *arrInsertTime= [doc searchWithXPathQuery:@"//*[@id='index_main']/div/div/div[3]/span[3]/text()"];
    NSArray *arrSeeNum= [doc searchWithXPathQuery:@"//*[@id='index_main']/div/div/div[3]/span[2]/text()"];
    NSArray *arrTitle= [doc searchWithXPathQuery:@"//*[@id='index_main']/div/div/h3/a/text()"];
    NSArray *arrUserBlogLink= [doc searchWithXPathQuery:@"//*[@id='index_main']/div/div/div[3]/a"];
    NSArray *arrUserName= [doc searchWithXPathQuery:@"//*[@id='index_main']/div/div/div[3]/a/text()"];
    NSArray *arrUserPicLink= [doc searchWithXPathQuery:@"//*[@id='index_main']/div/div/div[1]/div/a/img"];
   
    
//    userName       //*[@id='index_main']/div/div/div[3]/a/text()
//    userPicLink    //*[@id='index_main']/div/div/div[1]/div/a/img/    src
//    userBlogLink   //*[@id='index_main']/div/div/div[3]/a             href
//    title          //*[@id='index_main']/div/div/h3/a/text()
//    content        //*[@id='index_main']/div/div/div[1]/text()[2]
//    articleLink    //*[@id='index_main']/div/div/h3/a                 href
//    seeNum         //*[@id='index_main']/div/div/div[3]/span[2]/text()
//    goodNum        //*[@id='index_main']/div/div/div[3]/div/div/span[1]/text()
//    badNum         //*[@id='index_main']/div/div/div[3]/div/div/span[2]/text()
//    insertTime     //*[@id='index_main']/div/div/div[3]/span[3]/text()
//    type  
//    html
    
    //*[@id="index_main"]/div[1]/div/div[1]
    //*[@id="index_main"]/div[29]/div/div[1]
    //*[@id="index_main"]/div[30]/div/div[1]
    
    
    
     NSLog(@"arrTitle count======%ld",[arrTitle count] );
    for(int i=0;i<[arrTitle count] ;i++){
        
        NSString *userName = [[arrUserName objectAtIndex:i] content];
        NSString *userPicLink = [[arrUserPicLink objectAtIndex:i] objectForKey:@"src"];
        NSString *userBlogLink = [[arrUserBlogLink objectAtIndex:i] objectForKey:@"href"] ;
        NSString *title = [[arrTitle objectAtIndex:i] content];
        NSString *reg = [[NSString alloc] initWithFormat:@"//*[@id='index_main']/div[%d]/div/div[1]/text()", i+1 ];
        NSString *content =@"";
        @try{
        content = [[[doc searchWithXPathQuery: reg ] objectAtIndex:1 ] content];
        }@catch (NSException * e) {}
        NSString *articleLink = [[arrArticleLink objectAtIndex:i]  objectForKey:@"href"];
        NSString *seeNum = [[arrSeeNum objectAtIndex:i] content];
        NSString *goodNum = [[arrGoodNum objectAtIndex:i] content];
        NSString *badNum = [[arrBadNum objectAtIndex:i] content];
        NSString *insertTime = [[arrInsertTime objectAtIndex:i] content];
        
        NSLog(@"%d == %@-%@-%@-%@-%@-%@-%@-%@-%@-%@-",i,userName,userPicLink,userBlogLink,title,content,articleLink,seeNum,goodNum,badNum,insertTime );
    }
        
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

 

目录
相关文章
|
5月前
|
iOS开发 开发者
【教程】iOS如何抓取HTTP和HTTPS数据包经验分享
📱 在日常的App开发和研发调研中,对各类App进行深入的研究分析时,我们需要借助专业的抓包应用来协助工作。本文将介绍如何使用iOS手机抓包工具来获取HTTP和HTTPS数据包,并推荐一款实用的抓包应用——克魔助手,希望能够帮助读者提升工作效率,高效地完成日常工作。
|
iOS开发 Windows Web App开发
Windows下使用Fiddler抓取IOS APP的https请求
Fiddler设置: 手机端设置 手机必须与电脑连接同一网段的wifi,点击wifi右边的叹号图标,进行配置; 配置WiFi代理并保存; 在手机中打开safari,在地址栏输入刚才获取到的ip地址,以及fiddler配置好的端口号(默认是8888); 证书安装完成后,需要在手机中设置信任证书,否则依然无法抓取https请求 。
2494 0
|
Web App开发 JSON 前端开发
|
iOS开发 Web App开发
iOS 10.3下使用Fiddler抓取HTTPS请求
最近使用Fiddler抓取手机上的HTTPS请求时,遇到一个问题。设置完之后,访问HTTPS的页面,却得到一个错误 网络出错,轻触屏幕重新加载:-1202 (如下图所示)   我印象中,之前都好好的,怎么突然就不行了呢?我重新审视了一遍自己的操作步骤。
1142 0
|
6天前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
14天前
|
开发框架 数据可视化 Java
iOS开发-SwiftUI简介
iOS开发-SwiftUI简介
|
3天前
|
开发框架 移动开发 Android开发
安卓与iOS开发中的跨平台解决方案:Flutter入门
【9月更文挑战第30天】在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各自占据半壁江山。开发者们常常面临着选择:是专注于单一平台深耕细作,还是寻找一种能够横跨两大系统的开发方案?Flutter,作为一种新兴的跨平台UI工具包,正以其现代、响应式的特点赢得开发者的青睐。本文将带你一探究竟,从Flutter的基础概念到实战应用,深入浅出地介绍这一技术的魅力所在。
18 7
|
6天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台解决方案
【9月更文挑战第27天】在移动应用开发的广阔天地中,安卓和iOS两大操作系统如同双子星座般耀眼。开发者们在这两大平台上追逐着创新的梦想,却也面临着选择的难题。如何在保持高效的同时,实现跨平台的开发?本文将带你探索跨平台开发的魅力所在,揭示其背后的技术原理,并通过实际案例展示其应用场景。无论你是安卓的忠实拥趸,还是iOS的狂热粉丝,这篇文章都将为你打开一扇通往跨平台开发新世界的大门。
|
12天前
|
前端开发 iOS开发 开发者
探索iOS开发中的SwiftUI框架
【9月更文挑战第21天】在iOS应用开发的广阔天地中,SwiftUI框架如一股清新之风,为开发者带来了声明式语法的便捷与高效。本文将深入探讨SwiftUI的核心概念、布局方式及数据绑定机制,同时通过实例演示如何运用SwiftUI构建用户界面,旨在引领读者领略SwiftUI的魅力,并激发其对iOS开发新趋势的思考与实践。
31 6
|
12天前
|
安全 Swift iOS开发
探索iOS开发之旅:Swift语言的魅力与挑战
【9月更文挑战第21天】在这篇文章中,我们将一起潜入iOS开发的海洋,探索Swift这门现代编程语言的独特之处。从简洁的语法到强大的功能,Swift旨在让开发者能够以更高效、更安全的方式构建应用程序。通过实际代码示例,我们会深入了解Swift如何简化复杂任务,并讨论它面临的挑战和未来的发展方向。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和知识。
28 4