我在服务器端找到了很多关于相对路径的答案,但是在客户端上没有找到。帮我解决一下。
我正在编写一个网络爬虫来统计一组网站的数据,但遇到了一个问题。我正在处理的一个网站有一个带有斜杠的相对路径导航栏,并且希望将这些路径视为绝对路径,如下所示:
在页面
规范正确的绝对URL ->
更糟糕的是,所涉及的服务器可以返回这些路径的200 OK,并且所有路径都有这个导航栏:因此我最终会爬行
所以问题来了:我是否错过了一些允许Chrome和Firefox将这些URL解释为绝对路径的东西?有没有办法消除规范正确且绝对路径是所需路径的情况?
我正在编写一个网络爬虫来统计一组网站的数据,但遇到了一个问题。我正在处理的一个网站有一个带有斜杠的相对路径导航栏,并且希望将这些路径视为绝对路径,如下所示:
在页面
http://www.example.com/foo/bar
导航栏链接地址 -> foo/
,baz/
,quox/
预期的绝对URL -> http://www.example.com/foo/
,http://www.example.com/baz/
,http://www.example.com/quox/
问题是,据我所知,这是非标准行为 - 然而Firefox和Chrome都将这些路径视为绝对路径。根据RFC 1808和RFC 2396,应该将它们处理为相对路径,如下所示:规范正确的绝对URL ->
http://www.example.com/foo/foo/
,http://www.example.com/foo/baz/
,http://www.example.com/foo/quox/
特别是在RFC 1808的第5.1节和RFC 2396的C.1节中,第4个示例显示了这种情况被特别处理为相对路径。在我编写网络爬虫的Ruby中,Addressable gem根据规范处理这些内容。更糟糕的是,所涉及的服务器可以返回这些路径的200 OK,并且所有路径都有这个导航栏:因此我最终会爬行
http://www.example.com/foo/
,这与 http://www.example.com/foo/foo/
,http://www.example.com/foo/foo/foo/
等页面相同,组合成奇怪的URL,如 http://www.example.com/foo/baz/quox/foo/
。所以问题来了:我是否错过了一些允许Chrome和Firefox将这些URL解释为绝对路径的东西?有没有办法消除规范正确且绝对路径是所需路径的情况?