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?

È stato utile?

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
scroll top