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>
4 个解决方案
#1
路径中包含中文,需要设置utf-8编码(encode)
#2
路径没有中文啊但是
#3
imglist = re.compile('"http:.+?\.jpg"').findall(html)
目测这个明显是多用了一层双引号,
但是其它问题也有,你再试一下吧。
目测这个明显是多用了一层双引号,
但是其它问题也有,你再试一下吧。
#4
好了 谢谢 折磨死我了
#1
路径中包含中文,需要设置utf-8编码(encode)
#2
路径没有中文啊但是
#3
imglist = re.compile('"http:.+?\.jpg"').findall(html)
目测这个明显是多用了一层双引号,
但是其它问题也有,你再试一下吧。
目测这个明显是多用了一层双引号,
但是其它问题也有,你再试一下吧。
#4
好了 谢谢 折磨死我了