2011-08-20 74 views
4

我的應用程序當前通過從遠程機器通過共享磁盤複製文件系統樹來讀取數據,所以它從應用程序的角度作爲文件系統深層複製工作。Java爬蟲庫 - 使用目錄列表解析器下載遞歸HTTP子樹

此解決方案有點限制,我還想通過http支持第二個選項 - 複製子樹。

圖書館應該做一些像wget --recursive這樣的解析目錄列表並使用它遍歷樹。

我找不到任何這樣做的Java庫。

我能夠自己實現這樣的功能(使用NekoHTML或類似的東西),但我不喜歡重新發明輪子。

是否有這樣的,我可以在我的應用程序內容易使用

理想:

  • 發表在Maven的中央倉庫,因爲我使用Maven爲構建
  • 與其他圖書館儘可能少依賴儘可能
  • 不需要機器人排除支持 - 將在有限的操作僅限臨時服務器組

謝謝。

注意:請張貼指向您個人使用的圖書館的主頁的指針。

+0

你有沒有找到解決方案? –

+0

不幸的是:( –

回答

2

Norconex HTTP Collector給定一個或多個起始URL,像樹一樣遍歷網站。它可以用作應用程序中的Java庫,或者用作命令行應用程序。您可以決定如何處理每個抓取的文檔。作爲一個成熟的網絡爬蟲,它可能比你以前做的更多,但你可以配置它以滿足你的需要。

例如,它會默認提取您文檔中的文本,並讓您決定如何處理該文本,方法是通過插入「提交者」(即提交提取內容的位置)。在你的情況下,我認爲你只想要原始文檔而忽略文本轉換部分。您可以通過插入自己的文檔處理器,然後「過濾」文檔,以便在您按照自己的方式處理文檔時停止處理。

該項目是開源的,託管在Github上,完全「mavenized」。它支持robots.txt,但如果你願意,它可以關閉它。唯一的缺點是有很多依賴關係,但是由於您使用的是Maven,因此應該自動解決這些問題。您會在產品網站上找到Maven repository info

+0

這看起來像一個非常好的方向,我會探索它 - 謝謝! –