万方数据知识平台 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 ...
随机推荐
- Clojure学习03:数据结构(集合)
Clojure提供了几种强大的数据结构(集合) 一.集合种类 1.vector 相当于数组,如: [2 3 5] , ["ad" "adas" & ...
- Elven Postman(二叉树)
Elven Postman Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- UVALive 3989 Ladies' Choice
经典的稳定婚姻匹配问题 UVALive - 3989 Ladies' Choice Time Limit: 6000MS Memory Limit: Unknown 64bit IO Format: ...
- ACM 做题过程中的一些小技巧。
ACM做题过程中的一些小技巧. 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 2.有时候int型不够用,可以用long l ...
- 【转】如何在CentOS/RHEL中安装基于Web的监控系统 linux-das
Linux-dash是一款为Linux设计的基于Web的轻量级监控面板.这个程序会实时显示各种不同的系统属性,比如CPU负载.RAM使用率.磁盘使用率.网速.网络连接.RX/TX带宽.登录用户.运行的 ...
- lokijs
http://lokijs.org/#/ 500,000+ 1.1M ops/s. A fast, in-memory document-oriented datastore for node.js, ...
- SFTP上传下载(C#)
sftp是ftp协议的升级版本,是牺牲上传速度为代价,换取安全性能,本人开始尝试使用Tamir.SharpSSH.dll但它对新版本的openssh 不支持,所有采用Ssh.Net方式 需要依赖:Re ...
- IE6 png图片实现半透明的方法
IE6中支持PNG半透明图片完美解决方法-divcss5亲測 从IE7及IE7以上版本号都支持PNG半透明格式图片,而只有IE6不支持png格式透明图片,而GIF半透明效果不及png半透明格式图片,由 ...
- hdu 3917 (最大权闭合图)
题意:政府有一些路,m个公司来修,每个公司修路要交税给政府,修路政府要付给公司费用,求政府能获得的最大利润,如果选择一个公司负责一个项目,那么该公司负责的其它项目也必须由他负责,并且与其有相连关系的公 ...
- SVN库迁移
最后库迁移.机会主义的,在源库资源,然后上传到目标库,最后client更新url地址.的库被组长一眼识破,由于新库中没有大家的操作日志. 这次吸取上次的教训,用dump和load完毕SVN库迁移. 整 ...