抓取网页的方法:

抓取网页可以通过正则表达式也可以通过Java。

通过firefox浏览器,安装Firebug来查看网页的源代码。

首先将要抓取的部分保存到本地,步骤如下:

1.在要抓取的位置右键,选择使用Firebug查看元素

2.鼠标悬停在特定元素上面时,元素会高亮,找到整个表格数据的标签,右键选择复制HTML,然后新建一个html文件粘贴进去,为了防止乱码,应当把网页的head也保存下来。

网页本地化完成后,用eclipse新建一个Java工程,导入jsoup.jar库,

右键如下图操作,变成“奶瓶”表示可用:

利用jSoup包抓取网页的方法:

已知网页的内部结构为:

<li><a href="http://xxx"><img src="http://xxx.jpg"><p>xxx</p></a></li>

其中要抓取的部分为名称<p>标签和图片<img>标签的src属性。Elements为元素数组,得到的是多条li数据,Element为从li中获取的元素,抓取标签内属性使用attr方法,直接抓取文字使用text方法。

<span style="white-space:pre">		</span>//文件路径
String url = "/Users/soulghost/Desktop/WebCatch.html"; try{
//加载网页
Document doc = Jsoup.parse(new File(url), "UTF-8"); //抓去特定标签的元素
Elements lis = doc.select("li"); //遍历所有元素
for(int i = 0; i < lis.size(); i++){
Element li = lis.get(i);
Element img = li.select("img").get(0);
String imgName = img.attr("src");
Element p = li.select("p").get(0);
String heroName = p.text();
} }catch (Exception e){ }

生成plist的方法:先新建字典,然后加入NSArray,最后将数组使用writeToFile直接生称为xxx.plist即可。

例如:

    NSDictionary *dict1 = @{@"name":@"abc",@"icon":@"abc.png"};
NSDictionary *dict2 = @{@"name":@"efg",@"icon":@"efg.png"};
NSDictionary *dict3 = @{@"name":@"hij",@"icon":@"hij.png"}; NSArray *apps = @[dict1, dict2, dict3]; [apps writeToFile:@"/Users/soulghost/Desktop/heros.plist" atomically:YES];

因此应该在Java中打印这样的代码,然后拷贝到Xcode中运行来生成plist。

注意特殊字符,例如""使用反斜杠来转义(\“)来转义。

Tip:不要忘了array的新建用 @[ ],字典用@{ }。

使用Xcode下载src中的图片:

网络数据通过二进制方式传播,使用NSData类来获取特定URL的数据:

注意一个细节,使用string的lastPathComponent方法可以获取路径中最后的文件名部分。

另一个细节,因为icon键内存放的是url,应该转化为图标名称filename,注意新建可变数组marray和可变字典来修改数据,然后生成新的数组。

    NSMutableArray *marray = [NSMutableArray array];
for (NSDictionary *hero in array) {
NSString *iconURL = hero[@"icon"];
NSURL *url = [NSURL URLWithString:iconURL];
NSData *data = [NSData dataWithContentsOfURL:url]; NSString *filename = [iconURL lastPathComponent]; NSString *path = [NSString stringWithFormat:@"/xxx/%@",filename]; [data writeToFile:path atomically:YES]; NSMutableDictionary *newDict = [NSMutableDictionary dictionary];
newDict[@"name"] = hero[@"name"];
newDict[@"icon"] = filename;
[marray addObject:newDict];
}

通过Java进行网页抓取并生成plist创建代码的更多相关文章

  1. Java实现网页抓取的一个Demo

    这个小案例的话我是存放在我的github 上. 下面给出链接自己可以去看下,也可以直接下载源码.有具体的说明 <Java网页抓取>

  2. Java开源网页抓取工具httpClient以及jsoup

    网上看到不错的Java网页抓取工具和库 先记录一下 使用java开源工具httpClient及jsoup抓取解析网页数据

  3. java抓取动态生成的网页

    最近在做项目的时候有一个需求:从网页面抓取数据,要求是首先抓取整个网页的html源码(后期更新要使用到).刚开始一看这个简单,然后就稀里哗啦的敲起了代码(在这之前使用过Hadoop平台的分布式爬虫框架 ...

  4. java网页抓取

    网页抓取就是,我们想要从别人的网站上得到我们想要的,也算是窃取了,有的网站就对这个网页抓取就做了限制,比如百度 直接进入正题 //要抓取的网页地址 String urlStr = "http ...

  5. 基于Casperjs的网页抓取技术【抓取豆瓣信息网络爬虫实战示例】

    CasperJS is a navigation scripting & testing utility for the PhantomJS (WebKit) and SlimerJS (Ge ...

  6. 如何用python抓取js生成的数据 - SegmentFault

    如何用python抓取js生成的数据 - SegmentFault 如何用python抓取js生成的数据 1赞 踩 收藏 想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓 ...

  7. 网页抓取小工具(IE法)

    网页抓取小工具(IE法)—— 吴姐 http://club.excelhome.net/thread-1095707-1-1.html 用IE提取网页资料的好处在于:所见即所得,网页上能看到的信息一般 ...

  8. 分享一个c#t的网页抓取类

    using System; using System.Collections.Generic; using System.Web; using System.Text; using System.Ne ...

  9. 网页抓取:PHP实现网页爬虫方式小结

    来源:http://www.ido321.com/1158.html 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐.LZ总结了几种常用的.易于实现 ...

随机推荐

  1. PHP MySQL 插入数据

    PHP MySQL 插入数据 使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据. 以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 ...

  2. 整理的Java List Set Map是否有序,元素是否允许重复

    整理的Java List Set Map是否有序,元素是否允许重复的说明,如下图:

  3. Android ocr识别文字介绍(文字识别)

    最近在做身份证号码识别,在网上搜索的一番后发现目前开源的OCR中tesseract-ocr算是比较强大的了,它由HP于1985年到1995年间开发,后来由google直接负责,经过谷歌进一步开发后,目 ...

  4. Docker学习笔记4: Docker-Compose—简化复杂容器应用的利器

    本文转载自http://www.tuicool.com/articles/AnIVJn. 因Python语言,个人也没学过,不是太熟悉,这篇文章的代码格式排版不准确爆了很多错,让我走了好多坑,不过还是 ...

  5. mongo 写分析

    写操作 复制集 mongo所有的节点都是写入到primary节点,同时写入oplog,secondary 节点会持续的从primary节点上复制oplog的信息,然后根据oplog写数据.second ...

  6. oracle11实战详解

    因为最近可以学习oracle了,所以昨天把oracle装好了,装的时候因为种种不知名的原因,把我的mysql居然连连不上了.说实话如果自己看教程安装的话还是有一点小复杂的,特别是对于我这种学渣来说,我 ...

  7. iOS 10 适配 ATS

    一. HTTPS 其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据报去传输,以此保证传输数据的 ...

  8. Android基础知识点-Manifest清单文件

    每个应用的根目录中都必须包含一个 AndroidManifest.xml 文件(且文件名精确无误). 清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码. ...

  9. Android中Snackbar的介绍以及使用

    Android中Snackbar的介绍以及使用 介绍 Snackbar可以说是Toast的升级版,不仅有显示信息的功能,还可以添加一个Action,实现点击功能,可以右滑删除. 效果图 Snackba ...

  10. Java进阶(四十七)Socket通信

    Java进阶(四十七)Socket通信   今天讲解一个 Hello Word 级别的 Java Socket 通信的例子.具体通讯过程如下: 先启动Server端,进入一个死循环以便一直监听某端口是 ...