万方数据知识平台 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 415_@RequestBody接受参数报415错误「建议收藏」

    java 415_@RequestBody接受参数报415错误「建议收藏」1.简介@RequestBody作用:1)该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;2)再把HttpMessageConverter返回的对象数据绑定到controller中方法的参数上。使用时机:1)GET、POST方式提时,根据requestheaderConten…

    2022年6月4日
    137
  • LaTeX如何正确输入引号:双引号“”单引号‘’[通俗易懂]

    LaTeX如何正确输入引号:双引号“”单引号‘’[通俗易懂]最近看一些latex用户的文章,输入的双引号和单引号都是用输入法中的中文模式键入,并不是LaTeX的正确输入方式。正确的输入方法如下:使用键盘的Tab键上侧的LaTeX技巧218:LaTeX如何正确输入引号:双引号“”单引号‘’连续键入两个“然后输入键盘的两个单引号”。单引号输入类似。示例如下:LaTeX技巧218:LaTeX如何正确输入引号:双引号“”单引号‘’演示代码:

    2022年6月25日
    42
  • 浓缩就是精华「建议收藏」

    浓缩就是精华「建议收藏」 『凡人牧场』人生启示录:被称为世上最经典的25句话(转载)   作者:晶晶鱼 提交日期:2003-12-3115:32:40    1,记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。      2,能冲刷一切的除了眼泪,就是时间,以时间来推移感情,时间越长,冲突越淡,仿佛不断稀释的茶。      3,怨言是上天得至人类最大的供物,也是人

    2022年6月29日
    19
  • uart串口通信协议标准_串口通信协议

    uart串口通信协议标准_串口通信协议通信协议篇——UART串口通信

    2025年7月28日
    1
  • 软件测试基础理论(总结)[通俗易懂]

    软件测试基础理论(总结)[通俗易懂]1. 软件的三个要素:程序(实行特定功能的代码) 文档(支持代码运行)数据(支持程序运行一切有关)2. 软件的产品质量指的是?1)质量是指实体特性的综合,表示实体满足明确的或隐含要求的能力。3. 软件测试的目的:1)验证软件是否满足软件开发合同或者项目开发计划,系统/子系统设计文档,软件需求规格说明,软件产品说明等规定的软件质量要求2)通过测试,发现软件缺陷 3

    2022年6月18日
    25
  • Windows 平台搭建 PHP 集成开发环境[通俗易懂]

    Windows 平台搭建 PHP 集成开发环境[通俗易懂]Windows平台搭建PHP集成开发环境安装xamppXAMPP是一个易于安装且包含MySQL、PHP和Perl的Apache发行版。XAMPP的确非常容易安装和使用:只需下载,解压缩,启动即可。官网地址点击下载window版本的安装包,下载完成后点击安装next->next->…完成安装,打开软件:打开Apache服务出现问题:Apache启动提示1

    2022年6月28日
    29

发表回复

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

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