Heritrix修改帶參數時文件名

Heritrix保持文件時,以“/”爲分隔符保存爲文件。例如 http://www.ssss.com/node/show.asp?id=111,保存的文件路徑如下:在根目錄創建www.sss.com文件夾,然後在www.sss.com文件夾下創建node文件夾,之後再node下建立名稱爲showid=111.asp文件。這就是Heritrix保存文件的方式。

當路徑中有參數時,文件名會將參數放到.asp前面。如show.asp?id=111會存爲showid=111.asp。這樣我們文件就不好判斷原網址了。看源碼時發現在保存文件時,Heritrix先將參數分離,最後創建文件時將參數放到“.”前。我的思路是在參數前面加一個“.”符號,文件名就變成show.id=111.asp了。這樣還原網址時只需做簡單處理就可以了。

 org.archive.crawler.writer.MirrorWriterProcessor類中 private URIToFileReturn uriToFile(CrawlURI curi, String host, int port,
            String uriPath, String query, String suffix, String baseDir,
            int maxSegLen, int maxPathLen, boolean caseSensitive,
            String dirFile, Map characterMap, String dotBegin, String dotEnd,
            String tooLongDir, boolean suffixAtEnd, Set underscoreSet)方法中,query存放的就是參數。對query做下處理query = query == null ? query : "." + query;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章