Возникла проблема, на решая которую потратил вот уже несколько часов.
Суть примерно следующая.
Есть url, содержащий кириллические символы. Например: http://спортмат.рф/products/Спортмат_Детский_мат_500х500х50_мм
Необходимо открыть данный url при помощи urlopen
Делаю так:
from urllib2 import urlopen
url=u"http://спортмат.рф/products/Спортмат_Детский_мат_500х500х50_мм"
a = urlopen(url)
Traceback (most recent call last):
File “<pyshell#13>”, line 1, in <module>
urlopen(url)
File “C:\Python27\lib\urllib2.py”, line 126, in urlopen
return _opener.open(url, data, timeout)
File “C:\Python27\lib\urllib2.py”, line 394, in open
response = self._open(req, data)
File “C:\Python27\lib\urllib2.py”, line 412, in _open
‘_open’, req)
File “C:\Python27\lib\urllib2.py”, line 372, in _call_chain
result = func(*args)
File “C:\Python27\lib\urllib2.py”, line 1199, in http_open
return self.do_open(httplib.HTTPConnection, req)
File “C:\Python27\lib\urllib2.py”, line 1168, in do_open
h.request(req.get_method(), req.get_selector(), req.data, headers)
File “C:\Python27\lib\httplib.py”, line 955, in request
self._send_request(method, url, body, headers)
File “C:\Python27\lib\httplib.py”, line 988, in _send_request
self.putheader(hdr, value)
File “C:\Python27\lib\httplib.py”, line 935, in putheader
hdr = ‘%s: %s’ % (header, ‘\r\n\t’.join())
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-7: ordinal not in range(128)
Подскажите, плиз, как открыть подобный URL с помощью urlopen?