針對某個網頁的快照以及某些重要信息的抓取代碼解析
源代碼下載地址:http://download.csdn.net/source/1747877
1.先寫上配置文件:config.ini 配置幾個必要的參數
#------------------------要讀取的網頁地址--------------------------- url=http://192.168.100.27:9080/server-status #---------------------------存放讀取的網頁文件地址------------------- path_url=d:/snapshot/url/27server_$.htm #------------------------截取某段重要信息的報告文件------------------- path_report=d:/snapshot/report/report.txt #------------------------日誌文件---------------------------------- path_log=d:/snapshot/log/log.txt #-------------------------------截取內容規則----------------------- regx=Current Time(.*)//d{1,4} requests currently being processed #-------------------------------多少秒---------------------------- time=60 |
2.讀取配置文件:
public static ArrayList<Config> getConfigIni(){ java.util.Properties p = new java.util.Properties(); ArrayList<Config> al=null; FileInputStream fs; try { Config c=new Config(); al=new ArrayList<Config>(); fs = new FileInputStream("config.ini"); p.load(fs); c.setUrl(p.getProperty("url")); c.setPath_url(p.getProperty("path_url")); c.setPath_report(p.getProperty("path_report")); c.setPath_log(p.getProperty("path_log")); c.setRegx(p.getProperty("regx")); c.setTime(p.getProperty("time")); al.add(c); fs.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } p=null; return al; } |
3.創建寫文件方法並設置爲私有:
/** * 創建新文�?並寫入文件內�? * @param writerfilename 要創建的文件的路�? * @param temp 要寫如文件的內容 */ public static synchronized void CreateAndWriterFile(String writerfilename,String temp){ String tempwritename_1=writerfilename.substring(0, writerfilename.lastIndexOf("/"));//針對文件路徑�?/"截取 // String tempwritename_2=writerfilename.substring(writerfilename.lastIndexOf("/")+1, writerfilename.length()); Calendar c=Calendar.getInstance(); c.setTimeInMillis(System.currentTimeMillis()); File writename=new File(writerfilename); File ifMkdir=new File(tempwritename_1); if(!((tempwritename_1.substring(0,tempwritename_1.indexOf(":"))+1).equals(writerfilename.substring(0,writerfilename.indexOf("/"))))){ if(!ifMkdir.isDirectory()){ ifMkdir.mkdir();//判斷文件夾不存在,則創建文件夾 } } if(!writename.exists()){ try { writename.createNewFile();//判斷文件不存�?則創建新文件 } catch (IOException e) { e.printStackTrace(); } } BufferedWriter bw=null; try { bw=new BufferedWriter(new FileWriter(writename,true)); bw.write(temp);//寫如新文件內的內�? bw.newLine();//換行 bw.close(); } catch (IOException e) { e.printStackTrace(); } } |
4.創建讀取網頁內容的方法(這個方法是很簡單的那種):
public static String getWebContent(String domain) { System.out.println("開始讀取內容...(" + domain + ")"); StringBuffer sb = new StringBuffer(); try { java.net.URL url = new java.net.URL(domain); BufferedReader in = new BufferedReader(new InputStreamReader(url .openStream())); String line; while ((line = in.readLine()) != null) { sb.append(line); } in.close(); } catch (Exception e) { // Report any errors that arise // sb.append(e.toString()); System.err.println(e); System.err.println("Usage: java HttpClient <URL> [<filename>]"); } return sb.toString(); } |