万方数据知识平台 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 ...
随机推荐
- 读书笔记:javascript高级程序设计
> 变量.作用域和内存问题js为弱类型的语言 变量的值和数据类型可以在脚本的生命周期内改变.5种基本类型:string, number, undefined, null, boolean,基本数 ...
- 组件接口(API)设计指南-文件夹
组件接口(API)设计指南-文件夹 组件接口(API)设计指南[1]-要考虑的问题 组件接口(API)设计指南[2]-类接口(class interface) 组件接口(API)设计指南[3]-托付( ...
- Sublime 脚本 配置 (lua 和 JavaScript篇)
{ "cmd" :["C:/Lua/Lua.exe","$file"], "file_regex" :"^(? ...
- ZOJ3768 夹逼查找【STL__lower_bound()_的应用】
首先学习一下lower_bound() 函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置.如果所有元素都小于val,则返回last ...
- iTextSharp
iTextSharp 116毫秒处理6G的文件 前言: 有一家印刷企业专为米兰新娘,微微新娘,金夫人这样的影楼印刷婚纱相册.通过一个B2B销售终端软件,把影楼的相片上传到印刷公司的服务器,服务器对 ...
- Oracle百问百答(二)
Oracle百问百答(二) 11. nvl函数有什么用? NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值,否则 ...
- 在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只熟悉两种编
在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只熟悉两种编 ...
- hdu 4771 Stealing Harry Potter's Precious(bfs)
题目链接:hdu 4771 Stealing Harry Potter's Precious 题目大意:在一个N*M的银行里,贼的位置在'@',如今给出n个宝物的位置.如今贼要将全部的宝物拿到手.问最 ...
- HDU 4712Hamming Distance(随机函数运用)
Hamming Distance Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- 利用opencv中的级联分类器进行人脸检測-opencv学习(1)
OpenCV支持的目标检測的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification).注意,新版本号的C++接口除了Haar特征以外 ...