利用Java实现简单的抓取网页数据并存放于plist中
第一步:下载Firefox,安装Firebug
进入测试网站,http://lol.duowan.com/hero/,打开Firebug,在一个英雄头像上点击右键 使用Firebug查看元素,
在 <ul id="champion_list"> 一行右键点击复制HTML获得所有数据的信息。
利用Xcode创建一个lol.html文件保存代码,
打开文件发现乱码,添加编码,如图所示
第二步:打开eclipse,创建project,new class , 导入jsoup-1.7.3.jar ,右击add to build path
代码如下:
1 import java.io.File; 2 3 import org.jsoup.Jsoup; 4 import org.jsoup.nodes.Document; 5 import org.jsoup.nodes.Element; 6 import org.jsoup.select.Elements; 7 8 public class LolTest { 9 10 public static void main(String[] args) { 11 try { 12 // 1.文件的路径 13 String path = "/Users/tsangyupsing/Desktop/lol.html"; 14 15 // 2.加载网页 16 Document doc = Jsoup.parse(new File(path),"UTF-8"); 17 18 // 3.解析网页 19 Elements lis = doc.select("li"); 20 System.out.println("NSArray *apps = @["); 21 22 23 24 // 4.遍历数组 25 for (int i = 0; i< lis.size(); i++) { 26 Element li = lis.get(i); 27 Element img = li.select("img").get(0); 28 String imgName = img.attr("src"); 29 Element span = li.select("span").get(0); 30 String personName = span.text(); 31 System.out.println("@{@\"name\":@\"" + personName + "\", @\"icon\":@\""+ imgName +"\"},"); 32 // 这里直接生成oc代码 33 34 35 } 36 37 System.out.println("];"); 38 39 40 } catch (Exception e) { 41 e.printStackTrace(); 42 } 43 } 44 45 }
第三步,打开Xcode,创建plist,代码如下:
// // ViewController.m // java-plist // // Created by tsangyupsing on 14-9-24. // Copyright (c) 2014年 Tsangyupsing. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSArray *apps = @[ @{@"name":@"沙漠皇帝 阿兹尔", @"icon":@"http://img.dwstatic.com/lol/1409/273519298897/1409564119766.jpg"}, @{@"name":@"迷失之牙 纳尔", @"icon":@"http://img.dwstatic.com/lol/1408/273091424599/1409136231951.png"} // 此处省略N个数据 ]; // for(NSDictionary *dict in apps) { // NSString *icon = dict[@"icon"]; // // // 新建网络图片的URL路径 // NSURL *url = [NSURL URLWithString:icon]; // // //下载图片的二进制数据 // NSData *data = [NSData dataWithContentsOfURL:url]; // // //截取文件名 lastPathComponent:最后目录 // NSString *filename = [icon lastPathComponent]; // // //文件路径 // NSString *iconPath = [NSString stringWithFormat:@"/Users/tsangyupsing/Desktop/icons/%@", filename]; // // [data writeToFile:iconPath atomically:YES]; // // } NSMutableArray *newapps = [NSMutableArray array]; for (NSDictionary *dict in apps) { NSMutableDictionary *newDict = [NSMutableDictionary dictionary]; newDict[@"name"] = dict[@"name"]; newDict[@"icon"] = [dict[@"icon"]lastPathComponent]; [newapps addObject:newDict]; } [newapps writeToFile:@"/Users/tsangyupsing/Desktop/app.plist" atomically:YES]; } @end
最后生成的plist如下图:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。