天哪,你好!我想用python抓取网页,问题是相对路径,我有以下函数来规范化和取消激活网页中的网址,我无法实现解除激活功能的一部分。有任何想法吗? :
def normalizeURL(url):
if url.startswith('http')==False:
url = "http://"+url
if url.startswith('http://www.')==False:
url = url[:7]+"www."+url[7:]
return url
def deRelativizePath(url, path):
url = normalizeURL(url)
if path.startswith('http'):
return path
if path.startswith('/')==False:
if url.endswith('/'):
return url+path
else:
return url+"/"+path
else:
#this part is missing
问题是:我不知道如何获取主网址,它们可以采用多种格式:
http://www.example.com
http://www.example.com/
http://www.sub.example.com
http://www.sub.example.com/
http://www.example.com/folder1/file1 #from this I should extract http://www.example.com/ then add path
...
答案 0 :(得分:4)
我建议您考虑使用urlparse.urljoin()
:
通过将“基本网址”(
base
)与其他网址(url
)相结合,构建完整(“绝对”)网址。非正式地,这使用基本URL的组件,特别是寻址方案,网络位置和路径(的一部分),以在相对URL中提供缺少的组件。
答案 1 :(得分:3)
from urlparse import urlparse
然后解析各个部分。