package com.googlelogo;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
* google logo 下载程序
*
* http://www.dh189.com/
* @author ZZJ
*
*/
public class GoogleLogoCrawler extends Crawler {
private static final String URL = "http://www.google.com.hk/logos/logos%y-%n.html";
private static final String LOGO_URL = "http://www.google.com.hk";
private static final String[] YEARS = new String[] { "98", "99", "00", "01", "02", "03", "04", "05",
"06", "07", "08", "09", "10" };
private static final String INDEX = "http://www.google.com.hk/logos/index.html";
private static final String DIR_PATH="D:\\googlelogos\\";
public void doStart() {
JSONArray array = new JSONArray();
for (String year : YEARS) {
for (int i = 1; i < 5; i++) {
String url = URL.replaceAll("%y", year).replaceAll("%n", i + "");
String path = year + "_" + i;
start(url, array, DIR_PATH + path + "\\", path);
}
}
start(INDEX, array, DIR_PATH+"10_3\\", "10_3");
try {
FileUtils.writeStringToFile(new File(DIR_PATH+"json"), array.toString(), "UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(array);
}
public void start(String url, JSONArray array, String dir, String path) {
try {
String content = super.doGet(url);
Document doc = Jsoup.parse(content);
Elements dts = doc.select(".doodles dt");
Elements dds = doc.select(".doodles dd");
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(0);
for (int i = 0; i < dts.size(); i++) {
Element dt = dts.get(i);
Element dd = dds.get(i);
Map<String, Object> map = super.getMap();
list.add(map);
map.put("date", dt.text());
map.put("url", LOGO_URL + dd.select("img").first().attr("src"));
map.put("title", dd.text());
}
JSONArray array2 = new JSONArray();
for (Map<String, Object> map : list) {
JSONObject json = new JSONObject();
String proxy = StringUtils.substringAfterLast(map.get("url").toString(), ".");
long date = new Date().getTime();
String name = date + "." + proxy;
json.put("url", map.get("url").toString());
json.put("dir", name);
json.put("title_en", map.get("title"));
json.put("date", map.get("date"));
//翻译
String dateZh = super.translateEnToCinese(map.get("date").toString());
String titleZh = super.translateEnToCinese(map.get("title").toString());
json.put("title_zh_cn", dateZh + " - " + titleZh);
//下载图片
super.downloadFile(map.get("url").toString(), dir + name);
array2.put(json);
}
array.put(new JSONObject().put(path, array2));
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
new GoogleLogoCrawler().doStart();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
使用HttpClient 和 jsoup 下载 Google logo
共14个文件
jar:8个
class:2个
java:2个
需积分: 10 20 下载量 63 浏览量
2011-05-01
17:20:36
上传
评论
收藏 916KB ZIP 举报
温馨提示
Google的logo,感觉设计的很好,最近看了java的jsoup(html 解析器)把Google的logo全部下载下来,另外,在Google logos页面发现都是英文的,通过利用Google翻译api对logo说明进行翻译,最终把图片信息以及翻译结果用json保存下来。
资源推荐
资源详情
资源评论
收起资源包目录
googlelogos.zip (14个子文件)
googlelogos
.project 387B
bin
com
googlelogo
GoogleLogoCrawler.class 5KB
Crawler.class 4KB
src
com
googlelogo
GoogleLogoCrawler.java 4KB
Crawler.java 4KB
.classpath 743B
lib
commons-lang-2.4.jar 256KB
commons-logging-1.1.jar 52KB
google-api-translate-java-0.92.jar 44KB
httpcore-4.0-beta2.jar 167KB
json.jar 92KB
httpclient-4.0-alpha4.jar 240KB
jsoup-1.2.3.jar 111KB
commons-io-1.3.2.jar 86KB
共 14 条
- 1
资源评论
tmp0230
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功