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捐助),没钱捧个人场,谢谢各位。



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

 

 

 

 

目录
相关文章
|
8月前
|
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请求 。
2526 0
|
Web App开发 JSON 前端开发
|
iOS开发 Web App开发
iOS 10.3下使用Fiddler抓取HTTPS请求
最近使用Fiddler抓取手机上的HTTPS请求时,遇到一个问题。设置完之后,访问HTTPS的页面,却得到一个错误 网络出错,轻触屏幕重新加载:-1202 (如下图所示)   我印象中,之前都好好的,怎么突然就不行了呢?我重新审视了一遍自己的操作步骤。
1152 0
|
15天前
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
111 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
|
2月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
1月前
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
131 66
|
25天前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
|
1月前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
153 3
|
1月前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。

热门文章

最新文章