抓取网页的方法:

抓取网页可以通过正则表达式也可以通过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. 在Spring Boot中使用数据缓存

    春节就要到了,在回家之前要赶快把今年欠下的技术债还清.so,今天继续.Spring Boot前面已经预热了n篇博客了,今天我们来继续看如何在Spring Boot中解决数据缓存问题.本篇博客是以初识在 ...

  2. dimens.xml详解

    本文联合两篇博文和自身理解写下 其中一篇:http://blog.csdn.net/hnzcdy/article/details/50628993 另一篇:暂不知原作者 Android中官方建议的屏幕 ...

  3. React Native(一) FlexBox布局

    欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/53241550 本文出自:[余志强的博客] 在React Native ...

  4. Android开发之手把手教你写ButterKnife框架(一)

    欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/52662376 本文出自:[余志强的博客] 一.概述 JakeWhar ...

  5. 深度学习与计算机视觉系列(2)_图像分类与KNN

    作者: 寒小阳 &&龙心尘 时间:2015年11月. 出处: http://blog.csdn.net/han_xiaoyang/article/details/49949535 ht ...

  6. windows curl命令详解

    概述 Curl命令可以通过命令行的方式,执行Http请求.在Elasticsearch中有使用的场景,因此这里研究下如何在windows下执行curl命令. 软件下载 下载地址:https://cur ...

  7. 文件自动备份和同步bypy和syncthing

    http://blog.csdn.net/pipisorry/article/details/52464402 Linux定时备份数据到百度云盘 sudo pip3 install requestss ...

  8. 在自己笔记本电脑上如何访问虚拟机的内容、包括可以使用ssh、访问tomcat、访问nginx

    1.给自己的电脑设置一个回环网卡,关于如何配置回环网卡,可以百度搜索一下 设置好后的状态如下: 并把回环网卡的ipv4的值设置成192.168.1.1 配置如下: 2.将vmware中的"虚 ...

  9. ISP(Interface Segregation Principle),接口隔离原则

    ISP(Interface Segregation Principle),接口隔离原则 它要求如下: ①  一个类对另一个类的依赖性要建立在最小接口上. ②  使用多个专门的接口比使用单一的总接口要好 ...

  10. Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令

    Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...