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

万方数据知识平台 TFHpple +Xpath解析

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

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

- (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;
}

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • java缓存处理_清理java缓存

    java缓存处理_清理java缓存 java缓存技术一(转)看一粒沙中的世界,一朵野花中的天堂。把无限握于掌中,把永恒握于瞬间。——威廉•布莱克开始讨论缓存之前,让我们先来讨论讨论另外一个问题:理论和实践.从ahuaxuan接触的程序员来看,有的程序员偏实践,有的程序员偏理论,但是这都是不好的行为,理论和实践同样重要,我们在做很多核心的算法的时候,没有理论根本无从下手,而在我们多年的实践中,不

  • Java练习—-》求字符串中的最长回文子串

    Java练习—-》求字符串中的最长回文子串手贱,做了一道对于我来说挺难的题目嘿嘿!挺有意思的,分享一下文章目录前言一,题目二,思路图形解析代码前言第一次把自己的解题思维写出来,可能写的不太好,请给位原谅,哈哈哈哈额,如果有错的,请各位大佬帮我指出来哈,谢谢!!(^U^)ノ~YO一,题目求一串字符串的最长回文子串,这里以cabacabae为例二,思路图形解析第一步:观察这串字符串—》第二步:找出最长回文子串,并设数—》说明:在这里,假设知道最长回文子串,那这里的resCenter和maxRigth,reslengthgs

    2022年10月16日
  • jenkins拉取gitlab代码_git更新本地代码和远程仓库一致

    jenkins拉取gitlab代码_git更新本地代码和远程仓库一致前言python自动化的脚本开发完成后需提交到git代码仓库,接下来就是用Jenkins拉取代码去构建自动化代码了新建项目打开Jenkins新建一个自由风格的项目源码管理Repository

  • SQL中字符串截取函数(SUBSTRING)

    SQL中字符串截取函数(SUBSTRING)1、left(name,4)截取左边的4个字符列:SELECTLEFT(201809,4)年结果:20182、right(name,2)截取右边的2个字符SELECTRIGHT(201809,2)月份结果:093、SUBSTRING(name,5,3)截取name这个字段从第五个字符开始只截取之后的3个字符SELECTSUBSTRING(‘成都融资事…

  • charls使用笔记[通俗易懂]

    charls使用笔记[通俗易懂]一、https请求:PC端:1.安装charlesca证书选择help|InstallCharlesCASSLCertificate然后会弹出证书信息,选择安装证书,下一步,将证

  • 虚拟机vmware安装教程_红帽系统安装步骤

    虚拟机vmware安装教程_红帽系统安装步骤虚拟机VMware的详细安装步骤,下载

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号