我获取了百度百科首页并用正则表达式匹配了jpg图片,试着下载的时候发现有一个url带中文的:http://baike.bdimg.com/cms/static/huhui01/陕西方志馆1系列轮播图.jpg
然后调用之后出现
urllib.request.urlretrieve('http://baike.bdimg.c om/cms/static/huhui01/陕西方志馆1系列轮播图.jpg','C:/0.jpg')
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
urllib.request.urlretrieve('http://baike.bdimg.com/cms/static/huhui01/陕西方志馆1系列轮播图.jpg','C:/0.jpg')
File "D:\Program File\Python34\lib\urllib\request.py", line 186, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "D:\Program File\Python34\lib\urllib\request.py", line 161, in urlopen
return opener.open(url, data, timeout)
File "D:\Program File\Python34\lib\urllib\request.py", line 463, in open
response = self._open(req, data)
File "D:\Program File\Python34\lib\urllib\request.py", line 481, in _open
'_open', req)
File "D:\Program File\Python34\lib\urllib\request.py", line 441, in _call_chain
result = func(*args)
File "D:\Program File\Python34\lib\urllib\request.py", line 1210, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "D:\Program File\Python34\lib\urllib\request.py", line 1182, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "D:\Program File\Python34\lib\http\client.py", line 1088, in request
self._send_request(method, url, body, headers)
File "D:\Program File\Python34\lib\http\client.py", line 1116, in _send_request
self.putrequest(method, url, **skips)
File "D:\Program File\Python34\lib\http\client.py", line 973, in putrequest
self._output(request.encode('ascii'))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 24-28: ordinal not in range(128)
encode,decode上去都没用,怎么解决?
然后调用之后出现
urllib.request.urlretrieve('http://baike.bdimg.c om/cms/static/huhui01/陕西方志馆1系列轮播图.jpg','C:/0.jpg')
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
urllib.request.urlretrieve('http://baike.bdimg.com/cms/static/huhui01/陕西方志馆1系列轮播图.jpg','C:/0.jpg')
File "D:\Program File\Python34\lib\urllib\request.py", line 186, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "D:\Program File\Python34\lib\urllib\request.py", line 161, in urlopen
return opener.open(url, data, timeout)
File "D:\Program File\Python34\lib\urllib\request.py", line 463, in open
response = self._open(req, data)
File "D:\Program File\Python34\lib\urllib\request.py", line 481, in _open
'_open', req)
File "D:\Program File\Python34\lib\urllib\request.py", line 441, in _call_chain
result = func(*args)
File "D:\Program File\Python34\lib\urllib\request.py", line 1210, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "D:\Program File\Python34\lib\urllib\request.py", line 1182, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "D:\Program File\Python34\lib\http\client.py", line 1088, in request
self._send_request(method, url, body, headers)
File "D:\Program File\Python34\lib\http\client.py", line 1116, in _send_request
self.putrequest(method, url, **skips)
File "D:\Program File\Python34\lib\http\client.py", line 973, in putrequest
self._output(request.encode('ascii'))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 24-28: ordinal not in range(128)
encode,decode上去都没用,怎么解决?