修复损坏的链接

0 投票
1 回答
1587 浏览
提问于 2025-04-15 14:22

有没有人知道有什么库可以修复“坏掉”的网址?当我尝试打开一个网址,比如

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

如果我理解得没错的话,这个大致上符合你的需求。

撰写回答