「壊れた」URLを修正するためのライブラリを知っている人はいますか。のようなURLを開こうとすると
http://www.domain.com/../page.html
http://www.domain.com//page.html
http://www.domain.com/page.html#stuff
urllib2.urlopen がチョークし、HTTPError トレースバックが表示されます。この種のものを修正できるライブラリを知っている人はいますか?
次のようなものはどうですか...:
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
私がそれらを正しく理解していれば、あなたのニーズにほぼ一致しているように見えます.