Исправление сломанных URL - PullRequest
       10

Исправление сломанных URL

0 голосов
/ 17 сентября 2009

Кто-нибудь знает библиотеку для исправления "битых" URL-адресов. Когда я пытаюсь открыть URL-адрес, такой как

http://www.domain.com/../page.html
http://www.domain.com//page.html
http://www.domain.com/page.html#stuff

urllib2.urlopen душит и возвращает мне HTTPError. Кто-нибудь знает библиотеку, которая может исправить подобные вещи?

Ответы [ 2 ]

2 голосов
/ 17 сентября 2009

Как насчет чего-то вроде ...:

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

и может показаться, что примерно соответствует вашим потребностям, если я правильно их понял.

1 голос
/ 17 сентября 2009

См. Также этот вопрос .

...