万方数据知识平台 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解析的更多相关文章
- @1-4使用Xpath解析豆瓣短评
使用Xpath解析豆瓣短评 Python爬虫(入门+进阶) DC学院 本节课程主要介绍解析神器Xpath是什么.Xpath如何安装及使用,以及使用实际的例子讲解Xpath如何解析豆瓣短评的网页 ...
- 分析Python中解析构建数据知识
分析Python中解析构建数据知识 Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记 ...
- 爬虫系列二(数据清洗--->xpath解析数据)
一 xpath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 使用路径表达式在 XML 文档中进行导航 XPath 包 ...
- xpath解析数据
xpath解析数据 """ xpath 也是一种用于解析xml文档数据的方式 xml path w3c xpath搜索用法 在 XPath 中,有七种类型的节点:元素.属 ...
- 数据的查找和提取[2]——xpath解析库的使用
xpath解析库的使用 在上一节,我们介绍了正则表达式的使用,但是当我们提取数据的限制条件增多的时候,正则表达式会变的十分的复杂,出一丁点错就提取不出来东西了.但python已经为我们提供了许多用于解 ...
- python爬虫使用xpath解析页面和提取数据
XPath解析页面和提取数据 一.简介 关注公众号"轻松学编程"了解更多. XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.X ...
- 论文 查重 知网 万方 paperpass
相信各个即将毕业的学生或在岗需要评职称.发论文的职场人士,论文检测都是必不可少的一道程序.面对市场上五花八门的检测软件,到底该如何选择?选择查重后到底该如何修改?现在就做一个知识的普及.其中对于中国的 ...
- 极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
原文:极限挑战-C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码) 实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方 ...
- 大数据竞赛平台——Kaggle 入门
Reference: http://blog.csdn.net/witnessai1/article/details/52612012 Kaggle是一个数据分析的竞赛平台,网址:https://ww ...
随机推荐
- java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode(尼玛,蛋疼的错误)
java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode \-[M ...
- LVS:DR模式(Direct Routing)部署实验
本文介绍怎样在kvm的虚拟环境下,部署实验LVS的DR模式.包含网络结构图,怎样配置.以及使用tcpdump分析ip包. 网络结构图 kvm ...
- sharePoint常用命令
New-SPStateServiceDatabase -Name "StateServiceDatabase" | New-SPStateServiceApplication -N ...
- 合并k个已排序的链表 分类: leetcode 算法 2015-07-09 17:43 3人阅读 评论(0) 收藏
最先想到的是把两个linked lists 合并成一个. 这样从第一个开始一个一个吞并,直到所有list都被合并. class ListNode:# Definition for singly-lin ...
- SuperSocket源码解析之会话生命周期
一 基本概念 会话(Session)是客户端与服务器进行通信的基本单元,也是一个Socket的封装,在http协议中也有Session机制,其主要作用封装一个通信单元socket,负责服务器与客户端消 ...
- WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇]
原文:WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇] 在[上篇]中,我们分别站在消息交换和编程的角度介绍了SOAP Fault和FaultException异常.在服务执行过 ...
- 获取证书以用于 Windows Azure 网站 (WAWS)
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 近年来,随着网络犯罪的上升,使用 SSL 保护网站逐渐成为一项备受追捧的功能,Windows A ...
- 京东金融集团BD部门招聘 BD经理
新标签页http://74.55.154.136/ 互联网招聘_cnBeta.COM 北京 / 全职 / 20k-30k / 经验3-5年 / 本科及以上 / 1天前发布 职位诱惑 : 五险一金 职位 ...
- Struts2学习笔记(一) Struts2配置文件的配置
1.配置web.xml文件. 在Struts2中,struts框架式通过Filter启动的.Filter在web.xml中的配置如下: <filter> <filter-name&g ...
- WPF中控件ListView和DataGrid典型属性介绍
ListView GridView View视图 重要属性: public bool AllowsColumnReorder 获取或设置一个值,该值指示 System.Windows.Controls ...