修复损坏的链接
有没有人知道有什么库可以修复“坏掉”的网址?当我尝试打开一个网址,比如
http://www.domain.com/../page.html
http://www.domain.com//page.html
http://www.domain.com/page.html#stuff
时,urllib2.urlopen就出错了,并给我一个HTTP错误的追踪信息。有没有人知道有什么库可以解决这些问题?
1 个回答
1
那这样怎么样呢...:
import re
import urlparse
urls = '''
http://www.domain.com/../page.html
http://www.domain.com//page.html
http://www.domain.com/page.html#stuff
'''.split()
def main():
for u in urls:
pieces = list(urlparse.urlparse(u))
pieces[2] = re.sub(r'^[./]*', '/', pieces[2])
pieces[-1] = ''
print urlparse.urlunparse(pieces)
main()
它确实会发出你想要的效果:
http://www.domain.com/page.html
http://www.domain.com/page.html
http://www.domain.com/page.html
如果我理解得没错的话,这个大致上符合你的需求。