python爬虫运行正常最后报错_Python爬虫运行正常,最后却报错
問題: Python爬蟲運行正常,最后卻報錯
描述:
剛學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
然而在執(zhí)行完畢報錯:
Traceback?(most?recent?call?last):
File?"E:/untitled/getpng.py",?line?10,?in?
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
大神解答一下這個是什么意思,萬分感謝。
解決方案1:
用?try?except?處理一下解決方案2:
把i打出來看看就知道了,因為有個.gif的圖片,你的正則匹配出來url就不對了,url里有中文,沒法用ascii編碼序列化.
最好不要用正則去解析DOM,寫個正確覆蓋各種邊邊角角情況的正則也不是那么容易的。
總結
以上是生活随笔為你收集整理的python爬虫运行正常最后报错_Python爬虫运行正常,最后却报错的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中的md5加密_java中的MD
- 下一篇: 系统安装之电脑黑屏怎么办电脑黑屏如何装系