سؤال

لا أحد يعرف من مكتبة لتحديد عناوين "كسر". عندما أحاول فتح رابط مثل

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

والإختناقات urllib2.urlopen ويعطيني traceback HTTPError. لا أحد يعرف من المكتبة التي يمكن إصلاح هذا النوع من الأشياء؟

هل كانت مفيدة؟

المحلول

وانظر أيضا href="https://stackoverflow.com/questions/120951/how-can-i-normalize-a-url-in-python"> .

نصائح أخرى

وماذا عن شيء من هذا القبيل ...:

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

ويبدو أن ما يقرب يتناسب مع احتياجاتك، إذا فهمت بشكل صحيح.

scroll top