سؤال
لا أحد يعرف من مكتبة لتحديد عناوين "كسر". عندما أحاول فتح رابط مثل
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
ويبدو أن ما يقرب يتناسب مع احتياجاتك، إذا فهمت بشكل صحيح.
لا تنتمي إلى StackOverflow