我试图建立在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