将已解析页面的部分 URL 转换为完整 URL

Convert partial URL from parsed page to complete URL

我正在爬取一个包含不完整 URL 的页面,我需要将它们转换为完整的 HTTP url,例如,原始地址是:http://www.example.com/dir1/dir1/ 并且索引文件包含以下内容链接:

/page.htm
page.htm
../page.htm
../../page.htm

我需要将它们转换为

http://www.example.com/page.htm
http://www.example.com/dir1/dir2/page.htm
http://www.example.com/dir/page.htm
http://www.example.com/page.htm

我不确定如何识别 ../ 并根据原始地址对其进行评估,urlparse(temp_href).geturl() 不起作用。

如何正确转换?

urljoin 应该可以帮到您。

from urlparse import urljoin

base = "http://www.example.com/dir1/dir1/"
print urljoin(base, "/page.htm")
print urljoin(base, "page.htm")
print urljoin(base, "../page.htm")
print urljoin(base, '../../page.htm')