Найти - Пользователи
Полная версия: Преобразовать кириллицу в url
Начало » Python для новичков » Преобразовать кириллицу в url
1
rustamakhmetov
Добрый день!

Подскажите, пожалуйста, как преобразовать url вида:
http://www.domen.ru/index_avtoitem.php?do=5&kolRazdelov=1&seeID=408&seeArticle=1&meta_statii=FAQ - Японский Автомобиль&searchword=
к

http://www.domen.ru/index_avtoitem.php?do=5&kolRazdelov=1&seeID=408&seeArticle=1&meta_statii=FAQ%20-%20%DF%EF%EE%ED%F1%EA%E8%E9%20%C0%E2%F2%EE%EC%EE%E1%E8%EB%FC&searchword=
s0rg
test = 'do=5&kolRazdelov=1&seeID=408&seeArticle=1&meta_statii=FAQ - Японский Автомобиль'

print urllib.quote(test, '&=' )
rustamakhmetov
s0rg, спасибо!

вот что получилось (может кому пригодится). Проблема была в том, что “urllib2.Request” выдавал ошибку “400: Bad request” из-за кириллицы в url адресе.
def normalize_url(url, to_del=''):
parsed = list(urlparse.urlparse(url))
query = "&" + parsed[-2].replace("&", "&")
to_del_re = re.compile("("+"|".join(
[("[&]%s=[^&]+" % i) for i in to_del.split()]
) +")")
query = to_del_re.sub("", query).lstrip("&")
parsed[-2] = urllib.quote(query.encode('cp1251'), '&=' )
newurl = urlparse.ParseResult(*parsed)
return newurl.geturl()

url = u'http://www.domen.ru/index_avtoitem.php?do=5&kolRazdelov=1&seeID=408&seeArticle=1&meta_statii=FAQ - Японский Автомобиль&searchword='
url2= normalize_url(url)
request = urllib2.Request(url2.encode('cp1251'))
...
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB