[問題] 如何做一個JAVA網站下載工具?
如題 最近剛開始碰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)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):