解释URL中的相对路径

时间:2011-03-03 01:47:29

标签: url relative-path

我正在python中编写一个“webcrawler”,它接受一个URL并在链接到某个有限深度之后进行深度优先搜索。我遇到的问题是解释URLS中的相对路径。

在页面http://learnyouahaskell.com/introduction/上查看“开始”链接;它看起来像<a href="starting-out" class="nxtlink">Starting Out</a>。如何确定此链接是指“http://learnyouahaskell.com/introduction/starting-out”还是“http://learnyouahaskell.com/starting-out”?根据我的浏览器,第二个是正确的。

然而,在页面http://math.colgate.edu/~mionescu/math399s11/上有一个链接<a href="Finalprojects.pdf">here</a>,解析为“http://math.colgate.edu/~mionescu/math399s11/Finalprojects.pdf”。

有人可以向我解释这种不一致吗?如何确定如何在我的抓取工具中解析这些路径?

1 个答案:

答案 0 :(得分:3)

这种“明显”不一致的原因是,learnyouahaskell网站在其来源中使用了<base href="">标记。这将指示所有无域无人值守使用基数作为起点。

如果没有基本标记,它会按预期显示(您发布的第一个链接)并且就像math.colgate.edu链接一样。