利用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如下图:

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。