Correzione degli URL rotti
Domanda
Qualcuno sa di una libreria per riparare "rotto" URL. Quando provo ad aprire un URL come
http://www.domain.com/../page.html
http://www.domain.com//page.html
http://www.domain.com/page.html#stuff
urllib2.urlopen soffoca e mi dà un traceback HTTPError. Qualcuno conosce una libreria in grado di risolvere questo genere di cose?
Soluzione
Vedi anche questa domanda .
Altri suggerimenti
Che dire di qualcosa come ...:
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()
emette, come desideri:
http://www.domain.com/page.html
http://www.domain.com/page.html
http://www.domain.com/page.html
e sembrerebbe corrispondere grosso modo alle tue esigenze, se le capissi correttamente.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow