一些网站,如http://www.gilacountyaz.gov/government/assessor/index.php有一堆应该是绝对路径的内部链接,但没有前导斜杠。用urlparse.urljoin
结果解析它们时如下:
>>> import urlparse
>>> a = "http://www.gilacountyaz.gov/government/assessor/index.php"
>>> b = "government/assessor/address_change.php"
>>> urlparse.urljoin(a, b)
'http://www.gilacountyaz.gov/government/assessor/government/assessor/address_change.php'
这会导致网络爬虫没有意识到它已经访问了一个页面,并且可能存在无限循环。Firefox 和 Chrome 能够发现问题并正确解决
http://www.gilacountyaz.gov/government/assessor/address_change.php
有没有办法在 Python 中做同样的事情?请注意,假设始终使用前导斜杠是行不通的,因为我们可能正在处理真正的相对路径。