首页 > 代码库 > 利用Java实现简单的抓取网页数据并存放于plist中

利用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 = http://www.mamicode.com/[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如下图:

 

利用Java实现简单的抓取网页数据并存放于plist中