我試圖建立在Groovy一個很簡單的網絡爬蟲。只要有一個URL地址,就可以下載關聯的網頁和從該網頁鏈接的所有頁面。
在HTML代碼中的鏈接中,URL地址有時會縮寫。三種不同類型的URL浮現在腦海中:
- 絕對URL地址(如http://www.food.com/fruit/orange.html)
- 絕對URL地址與Web根目錄(如/fruit/orange.html)
- 相對URL地址,與所在的目錄當前網頁所在(比如../vegetables/carrot.html)
不過,我知道的一個事實,即Web應用程序可以實現任意URL路由和網址因此地址可能不會反映filesys的結構總之。
我的問題:
如何在Web瀏覽器知道要問,當用戶點擊網頁中的鏈接使用哪個網址?或者,如果我的抓取工具在網頁中找到鏈接時知道要下載哪個網頁?
有關可用Groovy庫解析URL的任何提示也值得讚賞。
感謝您的回答。這是否意味着要實現我的爬蟲,我需要研究適當的RFC並相應地實現算法?你知道我可以使用的任何現有庫(在我的Groovy項目中)爲我處理這個問題嗎? – 2012-08-05 12:31:47