作者lance70176 (十三夜)
看板java
标题[问题] 如何做一个JAVA网站下载工具?
时间Wed May 30 18:54:19 2012
如题 最近刚开始碰JAVA一个礼拜
想做一个网站下载工具, 把整个网站下载存在local host
相关的问题找蛮多 都只找到单一网页下载的范例
还蛮多都不完整的 还是说我该去买书了呢...
为了不像作业文 补上一些我的程式码做法
目前看来我需要的功能是
1.下载单一网页内容 (已完成)
//@param urlPath 网址
//@param savePath 储存路径
//@param fileName 档名
//@return message
public String loadURLFile(String urlPath,String savePath,String fileName){
String msg = "";
try{
URL zeroFile=new URL(urlPath);
String name=zeroFile.getFile();
System.out.println("档案:"+name);
name.length());//取得副档名
String tmpName = ".html";
msg = fileName+tmpName;//新取的档名 + 副档名
BufferedInputStream bs=new
BufferedInputStream(zeroFile.openStream());
byte[] b=new byte[1024];//一次取得 1024 个 bytes
FileOutputStream fs=new FileOutputStream(savePath + "/" + msg);
int len;
while((len=bs.read(b,0,b.length))!=-1){
fs.write(b,0,len);
}
bs.close();
fs.close();
}catch(IOException e){
e.printStackTrace();
System.out.println("读取档案写入时发生错误");
msg = "error";
}
return msg;
}
2.下载CSS (已完成)
//@param s 网址
//@return CSS内容
public List<String> getCSS(final String s) {
String regex;
final List<String> list = new ArrayList<String>();
regex = "<style.*?</style>";
final Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
final Matcher ma = pa.matcher(s);
while (ma.find()) {
list.add(ma.group());
}
return list;
}
3.下载JAVASCRIPT (实验中)
4.本站连结判断, 下载後连结替换成local link, 外部连结则不抓取(这个看起来还能做)
5.根据网页上的连结, 根据自定深入程度不同抓取连结做下载
(这部分要多工下载 会是个瓶颈)
如题, 目前发现自己做, 有遇到一些小问题
想问问是否有大大可以提供相关范例当参考或是关键字供搜寻
之前一年半 学的大多是偏网页方面的程式语言
ASP, ASP.NET C#, PHP, 这次在跨过来学JAVA
请大家多多指教
--
Key君:「哈哈哈哈哈哈,我就是後宫之王——杉崎键!
我是为了野心不惜伤害重要的人,
但同时为了让她幸福也不怕万苦的男人!」
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.89.121.16
※ 编辑: lance70176 来自: 202.89.121.16 (05/30 19:07)