刚学Python,不明白,特来请教。
程序是爬取贴吧某个地址的图片,运行正常,图片也都下载下来了。
代码如下:
import urllib.request
import re
response = urllib.request.urlopen("http://tieba.baidu.com/p/3646792267?fr=ala0&pstaala=2&tpl=5")
html = response.read().decode("utf-8")
a='src="(.*?\.jpg)"'
c=re.findall(a,html)
s=0
for i in c:
urllib.request.urlretrieve(i,"%s.png" % s)
s=s+1
然而在执行完毕报错:
Traceback (most recent call last):
File "E:/untitled/getpng.py", line 10, in <module>
s=s+1
File "E:\Python\lib\urllib\request.py", line 187, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "E:\Python\lib\urllib\request.py", line 162, in urlopen
return opener.open(url, data, timeout)
File "E:\Python\lib\urllib\request.py", line 465, in open
response = self._open(req, data)
File "E:\Python\lib\urllib\request.py", line 483, in _open
'_open', req)
File "E:\Python\lib\urllib\request.py", line 443, in _call_chain
result = func(*args)
File "E:\Python\lib\urllib\request.py", line 1268, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "E:\Python\lib\urllib\request.py", line 1240, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "E:\Python\lib\http\client.py", line 1083, in request
self._send_request(method, url, body, headers)
File "E:\Python\lib\http\client.py", line 1118, in _send_request
self.putrequest(method, url, **skips)
File "E:\Python\lib\http\client.py", line 960, in putrequest
self._output(request.encode('ascii'))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 263-268: ordinal not in range(128)
Process finished with exit code 1
大神解答一下这个是什么意思,万分感谢。