Mik*_*ikk 2 python url url-parsing urlparse
像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'
Run Code Online (Sandbox Code Playgroud)
这会导致Web爬网程序没有意识到它已经访问过页面,并且可能存在无限循环.Firefox和Chrome能够发现问题并正确解析
http://www.gilacountyaz.gov/government/assessor/address_change.php
Run Code Online (Sandbox Code Playgroud)
有没有办法在Python中做同样的事情?请注意,假设始终使用前导斜杠不起作用,因为我们可能正在处理真正的相对路径.
链接页面包含以下内容:
<head>
<base href="http://www.gilacountyaz.gov/index.php"/>
</head>
Run Code Online (Sandbox Code Playgroud)
如果您使用该URL作为第一个参数,urljoin您将获得正确的结果.此标记允许您的浏览器正确解释这些链接.