抓取网页的方法:

抓取网页可以通过正则表达式也可以通过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. jQuery 效果 – 淡入淡出

    在在jQuery中可以通过四个方法来实现元素的淡入淡出,这四个方法分别是:fadeIn().fadeOut().fadeToggle() 以及 fadeTo(),本文通过实例来为你讲解如何在jQuer ...

  2. OAuth 2 深入介绍

    1. 前言 2. OAuth2 角色 2.1 资源所有者(Resource Owner) 2.2 资源/授权服务器(Resource/Authorization Server) 2.3 客户端(Cli ...

  3. Python能做些什么?

    前言 网上搜集到的一些python能做什么的资料,利用python能做很多事情,我们可以在多门课程中都使用Python作为我们的教学语言.比如,计算机网络.数据结构.人工智能.图像处理.软件分析与测试 ...

  4. iOS开源加密相册Agony的实现(七)

    简介 虽然目前市面上有一些不错的加密相册App,但不是内置广告,就是对上传的张数有所限制.本文介绍了一个加密相册的制作过程,该加密相册将包括多密码(输入不同的密码即可访问不同的空间,可掩人耳目).Wi ...

  5. Linux 下的一个全新的性能测量和调式诊断工具 Systemtap,第 1 部分: kprobe

    kprobe 的原理.编程接口.局限性和使用注意事项 本系列文章详细地介绍了一个Linux下的全新的调式.诊断和性能测量工具Systemtap和它所依赖的基础kprobe以及促使开发该工具的先驱DTr ...

  6. [boost] build boost with intel compiler 16.0.XXX

    Introduction There are few information about how to compile boost with Intel compiler. This article ...

  7. Android的AIDL机制

    Android 接口定义语言 (AIDL) AIDL(Android 接口定义语言)与您可能使用过的其他 IDL 类似. 您可以利用它定义客户端与服务使用进程间通信 (IPC) 进行相互通信时都认可的 ...

  8. @property的参数

    转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51353580 本文出自:[openXu的博客] 参数类别 参数 说明 原子性 atomic ...

  9. DBoW2应用

    图像对应的bag-of-words向量\(v_t\) 假设词典总共有\(W\)个单词,那么每一幅图像能够用一个\(W\)维的向量表示 \((t_1, t_2, t_3, ..., t_W)\)其中 \ ...

  10. ubuntu opengl 开发

    开发环境: eclipse,需要安装C++开发插件,在自带的源中查找安装C++开发工具包即可 下载安装gl库: sudo apt-get install libgl1-mesa-dev 下载安装glu ...