万方数据知识平台 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解析[通俗易懂]

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Hadoop生态系统简介

    Hadoop生态系统简介Hadoop生态系统主要包括:Hive、HBase、Pig、Sqoop、Flume、ZooKeeper、Mahout、Spark、Storm、Shark、Phoenix、Tez、Ambari。Hive:用于Hadoop的一个数据仓库系统,它提供了类似于SQL的查询语言,通过使用该语言可以方便地进行数据汇总,特定查询以及分析存放在Hadoop兼容文件系统中的大数据。HBase:一种分布的、可

    2022年5月19日
    39
  • 一定要用相同的Context 对同一个receiver进行registerReceiver与unregisterReceiver吗?

    一定要用相同的Context 对同一个receiver进行registerReceiver与unregisterReceiver吗?最近在开发一些功能,突然想到在动态注册和反注册receiver的时候一定要用相同的context吗?我不敢肯定咨询了同事,得到的答案是不行的,然而为了进一步佐证他的观点我自己尝试了一下。也就是查了一下相关代码。众所周知android的应用程序在ActivityThread的publicstaticvoidmain(String[]args)中开始调用我们写的代码,Application、A

    2025年10月26日
    4
  • AFL 源码分析

    AFL 源码分析AFL 作为 C C 白盒 fuzzer 的鼻祖 为后来许多优秀的 fuzzer 提供了技术支持 衍生了很多 fuzzer 工具 本文只是站在巨人的肩膀上 参考了大量的博客 重新审计了部分源码 很多细节并没有深究 但对理解 AFL 的思想还是有一定作用的

    2025年11月14日
    2
  • 眼球追踪[通俗易懂]

    眼球追踪[通俗易懂]眼球追踪类似于头部追踪,但是图像的呈现取决于使用者眼睛所看的方向。例如,人们可以用“眼神”完成一种镭射枪的瞄准。眼球追踪技术很受VR专家们密切关注。Oculus创始人帕尔默•拉奇就曾称其为“VR的心

    2022年8月5日
    7
  • 灰色关联度分析(Grey Relation Analysis,GRA)原理详解[通俗易懂]

    灰色关联度分析(Grey Relation Analysis,GRA)原理详解[通俗易懂]释名灰色关联度分析(GreyRelationAnalysis,GRA),是一种多因素统计分析的方法。简单来讲,就是在一个灰色系统中,我们想要了解其中某个我们所关注的某个项目受其他的因素影响的相对强弱,再直白一点,就是说:我们假设以及知道某一个指标可能是与其他的某几个因素相关的,那么我们想知道这个指标与其他哪个因素相对来说更有关系,而哪个因素相对关系弱一点,依次类推,把这些因素排个序,得到一个…

    2022年7月17日
    16
  • fastjson jsonobject转map对象_jsonobject遍历

    fastjson jsonobject转map对象_jsonobject遍历原标题:jsonobject转map对象我们在开发嵌套数据的时候,有时会返回jsonobject数据,这是因为进行的是url访问,但是这个过程可能会出现异常,因此我们需要将jsonobject转map对象使用。本文将向大家介绍jsonobject转map对象的实现方法。1、依赖于jar包,使用json-lib包进行转换。相关jar包jakartacommons-lang2.5jakarta…

    2022年8月23日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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