关于用urllib python3 爬取图片的问题 下面是代码 和 异常。。

qq_36032153 2017-11-29 12:32:03
import urllib.request
import re

url = 'http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E7%A7%92%E9%80%9F%E4%BA%94%E5%8E%98%E7%B1%B3%E5%A3%81%E7%BA%B8&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=%E7%A7%92%E9%80%9F%E4%BA%94%E5%8E%98%E7%B1%B3%E5%A3%81%E7%BA%B8&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=30&rn=30&gsm=1e&1511924778688='
data = urllib.request.urlopen(url).read()
html = data.decode('utf-8')


imglist = re.compile('"http:.+?\.jpg"').findall(html)
# f = open("D:/Crawler/1.html", "wb")
# f.write(data)
x = 0

for imgurl in imglist:
imgname = 'D:/Crawler/pic/' + str(x) + '.jpg'
x = x + 1
print(imgname)
imgurl = imgurl.replace('\/\/', '//')
imgurl = imgurl.replace('\/', '/')
print(imgurl)
urllib.request.urlretrieve(imgurl,imgname)

以上是代码
以下是异常
"http://img5.imgtn.bdimg.com/it/u=4182697097,1560768628&fm=27&gp=0.jpg"
Traceback (most recent call last):
File "D:/Python WorkSpace/爬虫/CrawlerPic.py", line 23, in <module>
urllib.request.urlretrieve(imgurl,imgname)
File "D:\Python 3.63\lib\urllib\request.py", line 248, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "D:\Python 3.63\lib\urllib\request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "D:\Python 3.63\lib\urllib\request.py", line 526, in open
response = self._open(req, data)
File "D:\Python 3.63\lib\urllib\request.py", line 549, in _open
'unknown_open', req)
File "D:\Python 3.63\lib\urllib\request.py", line 504, in _call_chain
result = func(*args)
File "D:\Python 3.63\lib\urllib\request.py", line 1388, in unknown_open
raise URLError('unknown url type: %s' % type)
urllib.error.URLError: <urlopen error unknown url type: "http>





...全文
271 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36032153 2017-11-29
  • 打赏
  • 举报
回复
路径没有中文啊但是
碧水幽幽泉 2017-11-29
  • 打赏
  • 举报
回复
路径中包含中文,需要设置utf-8编码(encode)
qq_36032153 2017-11-29
  • 打赏
  • 举报
回复
好了 谢谢 折磨死我了
混沌鳄鱼 2017-11-29
  • 打赏
  • 举报
回复
imglist = re.compile('"http:.+?\.jpg"').findall(html) 目测这个明显是多用了一层双引号, 但是其它问题也有,你再试一下吧。

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧