前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >万方数据知识平台 TFHpple +Xpath解析[通俗易懂]

万方数据知识平台 TFHpple +Xpath解析[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-07 20:41:15
2510
发布2022-07-07 20:41:15
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是全栈君。

试了一下。基本上适合全部的检索结果。

代码语言:javascript
复制
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    //获取数据
    NSURL *url=[NSURL URLWithString:@"http://s.g.wanfangdata.com.cn/Paper.aspx?q=hiv"];
    NSURLRequest *request=[NSURLRequest requestWithURL:url];
    NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    
    //解析数据
    TFHpple *hpple=[TFHpple hppleWithHTMLData:data];
    
    //XPATH字符串 越短越好。可是要能过滤出符合要求的结果
    //xpath教程:http://www.w3cschool.cn/index-14.html
    NSString *xpathStr =@"//div/ul/li [@class='title_li']   /a [not(@class)]";//解析标题 
    NSString *xpathStr2 =@"//div/ul/li [@class='zi'] ";//解析简单介绍
    NSArray *arr=[hpple searchWithXPathQuery:xpathStr];
    NSArray *arr2=[hpple searchWithXPathQuery:xpathStr2];
    //NSLog(@"%@",arr2);
    //这个数组中就有须要的值
   
    alltilte=[[NSMutableArray alloc]init];
    alltext=[[NSMutableArray alloc]init];
    alltilte = [self SaveArry:arr];
    alltext = [self SaveAlltext:arr2];
   
    for(int i=0;i<alltilte.count;i++)
    {
        NSLog(@"标题%@",alltilte[i]);
        NSLog(@"简单介绍%@",alltext[i]);
    }
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
    
}

-(NSMutableArray *)SaveAlltext :(NSArray *)_arry
{
    for (TFHppleElement *tmp in _arry)
    {
        NSString * string =[tmp raw];
        
        NSRange range;
        //        NSRange range2;
        range = [string rangeOfString:@"<br />"];
        string = [string substringToIndex:range.location];
        
        NSString  *temp =[string stringByReplacingOccurrencesOfString:@"<li class=\"zi\">
"
                                                           withString:@""];
        temp =[temp stringByReplacingOccurrencesOfString:@"<font color=\"red\">"
                                              withString:@""];
        temp =[temp stringByReplacingOccurrencesOfString:@"</font>"
                                              withString:@""];
        temp =[temp stringByReplacingOccurrencesOfString:@"<li class=\"zi\">"
                                              withString:@""];
        [alltext addObject:temp];
    }
    return alltext;
}



-(NSMutableArray *)SaveArry: (NSArray *)_arry
{
    
    for (TFHppleElement *tmp in _arry)
    {
        NSString * string =[tmp raw];
        NSRange range;
        NSRange range2;
        range = [string rangeOfString:@"</a>"];
        string = [string substringToIndex:range.location];
        NSString  *temp =[string stringByReplacingOccurrencesOfString:@"<font color=\"red\">" withString:@""];
        temp=[temp stringByReplacingOccurrencesOfString:@"</font>" withString:@""];
        range = [string rangeOfString:@">"];
        range2 = [string rangeOfString:@"img"];
        if(range.length!=0&&range2.length==0)
        {
            string = [temp substringFromIndex:range.location+1];
           [alltilte addObject:string];
        }
        
    }

    
    return alltilte;
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116261.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档