1前期準備,下載htmlparse壓縮包并配置到eclipse上,到下面網址可以下載
http://htmlparser.sourceforge.net/
現在我們就可以導入和使用htmlparser了 2.網頁的分析與根據網頁源碼使用htmlparse
現在我們來查看網頁源代碼
好、我們現在先來獲取一個頁面的下載鏈接
/** * 獲取一個頁面的下載鏈接 */ public static String getMoiveDownloadUrl(String moiveIntroUrl) { //頁面下載連接保存在這里 String moiveDownLoadUrl = ""; try { //首先根據頁面URL建立一個Parser. Parser parser = new Parser(moiveIntroUrl);//使用parser中extractAllNodesThatMatch方法,這個有許多的過濾器,可以幫助我們過濾出我們想要的內容,具體可以看api的介紹//這里我們使用鏈接文本過濾器,可以過濾出鏈接里面含ftp的內容,這樣就可以取出我們想要的鏈接 NodeList nodelist = parser.extractAllNodesThatMatch(new LinkStringFilter("ftp")); for (int i = 0; i < nodelist.size(); i++) { LinkTag tag = (LinkTag) nodelist.elementAt(i); moiveDownLoadUrl = tag.getLink(); } } catch (ParserException e) { e.PRintStackTrace(); } return moiveDownLoadUrl; }2、獲取一個分頁里的所有電影介紹頁面我們到現在就可以得到全部分頁的鏈接,各個電影介紹頁面的鏈接,介紹頁面里的下載鏈接。接下來我們要做的就是將這三個方法整合起來,獲得全部電影的下載鏈接
/** * 功能:保存數據到文件中 * * @param content * 要保存的內容 * @param fileName * 目標文件名(路徑) */ public static boolean writeContentToFileTwo(String content, String fileName) { boolean flag = false; try { PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(fileName,true))); pw.println(); pw.print(content); pw.flush(); pw.close(); flag = true; } catch (FileNotFoundException e) { e.printStackTrace(); flag = false; } return flag; }public static List getAllMoive() { List<String> movieList = new ArrayList<String>(); // 得到全部的分頁鏈接 List<String> allPage = getAllPage(); for (Iterator iterator = allPage.iterator(); iterator.hasNext();) { String pageListUrl = (String) iterator.next(); List<String> allMoiveUrl = getAllMoiveUrlFromOneList(pageListUrl); for (Iterator iterator2 = allMoiveUrl.iterator(); iterator2.hasNext();) { String moiveIntroUrl = (String) iterator2.next(); String moiveDownLoadUrl = getMoiveDownloadUrl(moiveIntroUrl); writeContentToFileTwo(moiveDownLoadUrl,"a.txt"); movieList.add(moiveDownLoadUrl); } } return movieList ; } public static void main(String[] args) { getAllMoive(); }效果截圖
3.分析與總結
其實這個工具的使用是不復雜的,流程也很清晰,問題的關鍵在于如何在一個龐大的html頁面中獲取你想要的內容,可以多一點查看各種的節點過濾器,它可以幫助我們選出我們想要的內容,每次在爬取網頁之前我們都要花大量時間去分析一個網頁,找到我們想要的內容,不能多也不能少,這我覺得才是爬蟲的使用的重點
新聞熱點
疑難解答