Парсинг сайтов рф на python

Автор: Igor Kirsanov


# -*- coding: utf-8 -*-
 
import urllib
import urlparse
 
URL1 = u'http://сайт.рф/путь?запрос'
URL2 = 'http://%D1%81%D0%B0%D0%B9%D1%82.%D1%80%D1%84/'
 
def to_idn(url):
    parts = list(urlparse.urlparse(url))
    parts[1] = parts[1].encode('idna')
    parts[2:] = [urllib.quote(s.encode('utf-8')) for s in parts[2:]]
    return urlparse.urlunparse(parts)
 
def from_idn(url):
    return urllib.unquote(url)
 
print to_idn(URL1)
print from_idn(URL2)
print to_idn(from_idn(URL2).decode('utf-8'))

источник http://stackoverflow.com/