万方数据知识平台 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 [email protected]"//div/ul/li [@class='title_li']   /a [not(@class)]";//解析标题
    NSString *xpathStr2 [email protected]"//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;
}

时间: 2024-10-06 04:54:28

万方数据知识平台 TFHpple +Xpath解析的相关文章

CNKI学术趋势和万方知识脉络分析

对某一领域的关注度进行了解,有两种方法,一个是用知网的学术趋势,另一个是用万方的知识脉络分析. 1.CNKI学术趋势 http://trend.cnki.net/TrendSearch/index.htm 学术关注度:以cnki知识资源总库中与关键词最相关的文献数量为基础,统计关键词做为文献主题出现的次数,形成的学术界对某一学术领域关注度的量化表示.   用户关注度:用户关注度是以用户在cnki系列数据库中所下载文章的数量为基础,统计关键词做为主题的文章被下载的次数,形成的用户对某一学术领域关注

JAVA调用返回XML格式数据的WebService,并通过XPath解析XML的应用

一.获取WSDL定义和endpoit地址 WSDL定义地址由开发者提供,为http://10.10.xx.xxx/webservice/Pangus.SCC.OracleEBS.WebService.dll/wsdl/IWebService 通过浏览器访问WSDL地址,可以看到endpoint地址的说明: <service name="IWebServiceservice"> <port name="IWebServicePort" binding

数据的查找和提取[2]——xpath解析库的使用

xpath解析库的使用 在上一节,我们介绍了正则表达式的使用,但是当我们提取数据的限制条件增多的时候,正则表达式会变的十分的复杂,出一丁点错就提取不出来东西了.但python已经为我们提供了许多用于解析数据的库,接下来几篇博客就给大家简单介绍一下xpath.beautiful soup以及pyquery的使用.今天首先进入xpath的学习. 1.1实例 在引入实例之前,我们先编写一个html,如下所示: <div><url><li class="item-0&quo

物理隔离下的数据交换平台难点解析与实践(一)

目录 第零章.前言:为什么?做什么?怎么做? 第一章.数据交换平台的一些基本概念 目录 第零章.前言:为什么?做什么?怎么做? 最近带队做了公司的一个项目,叫数据交换平台,旨在物理隔离的情况下对多端业务系统进行数据的加密.传输.监控. 正好这个项目的架构师也在公司做了一次架构层面的技术分享,我便把此次分享和我在项目实践中遇到的一些坑一起整理出来,形成本系列文章. 本系列文章介绍在物理隔离的网络条件下进行数据交换的难点,以及如何保证文件交换的可靠性和安全性,如何与业务系统做到低耦合. 本文的目的在

大数据竞赛平台——Kaggle 入门

大数据竞赛平台--Kaggle 入门篇 这篇文章适合那些刚接触Kaggle.想尽快熟悉Kaggle并且独立完成一个竞赛项目的网友,对于已经在Kaggle上参赛过的网友来说,大可不必耗费时间阅读本文.本文分为两部分介绍Kaggle,第一部分简单介绍Kaggle,第二部分将展示解决一个竞赛项目的全过程.如有错误,请指正! 1.Kaggle简介 Kaggle是一个数据分析的竞赛平台,网址:https://www.kaggle.com/ 企业或者研究者可以将数据.问题描述.期望的指标发布到Kaggle上

极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)

原文:极限挑战-C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码) 实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间. 本实验中所用到工具为VS2008和SQL SERVER 2000.SQL SERVER 2008,分别使用5中方法将100万条数据导入SQL 2000与SQL 2008中,实验环境是DELL 2850双2.0GCPU,2G内存的服务器.感兴趣的朋友可以下载源代码自己验证一下所用时间

万方安全:信息系统的风险评估过程与评估方法

就像做投资一样,信息网络也存在风险,如果不了解信息网络风险并加以控制或解决的话,网络的安全就无法保证,各种的信息也许就会毫无保障,网络世界会紊乱无章.对于信息网络,万方安全认为,我们要对其进行一个风险的评估,然后再找方法去解决,尽最大的力度去减少风险所带来的威胁或损失. 信息安全风险评估是进行量化评估一件事情给人们的生活.生命.财产等各个方面造成的影响和损失的可能性的工作,而信息系统的信息安全风险评估是指确定在计算机系统和网络中每一种资源缺失或遭到破坏对整个系统造成的预计损失数量,是对信息资产威

美图数据统计分析平台架构演进

摘要:美图拥有十亿级用户,每天有数千万用户在使用美图的各个产品,从而积累了大量的用户数据.随着App的不断迭代与用户的快速膨胀,产品.运营.市场等越来越依赖于数据来优化产品功能.跟踪运营效果,分析用户行为等,随之而来的有越来越多的数据统计.分析等需求,那么如何应对和满足不断膨胀的数据统计与分析需求?业务的不断发展又怎么推进架构实现的改造?本文将介绍大数据业务与技术的碰撞产物之一:美图大数据统计分析平台的架构演进,希望通过这次分享能给大家带来一些解决数据业务与架构方面的思考. 如果有做过大数据相关

宜人贷PaaS数据服务平台Genie:技术架构及功能

上篇:架构及组件 一.数据平台的发展 1.1 背景介绍 随着数据时代的到来,数据量和数据复杂度的增加推动了数据工程领域的快速发展.为了满足各类数据获取/计算等需求,业内涌现出了诸多解决方案.但大部分方案都遵循以下原则: 降低数据处理成本 合理提高数据使用/计算效率 提供统一的编程范式 宜人贷的数据服务平台也是遵循这三个原则.本人有幸亲身经历了宜人贷数据平台Genie的整个发展过程,纵观宜人贷和业内,可以说Genie的发展是工业界数据平台发展的缩影. Google 的三大论文和Apache Had