新手,不知道怎么解決
>>> i=0
>>> for url in listurl:
f=open('E:/python/mi/'+str(i)+'.jpg','wb')
req=urllib2.urlopen(url)
buf=req.read()
f.write(buf)
i+=1
Traceback (most recent call last):
? File "<pyshell#14>", line 3, in <module>
? ? req=urllib2.urlopen(url)
? File "C:\Program Files\IBM\SPSS\Statistics\22\Python\lib\urllib2.py", line 126, in urlopen
? ? return _opener.open(url, data, timeout)
? File "C:\Program Files\IBM\SPSS\Statistics\22\Python\lib\urllib2.py", line 384, in open
? ? protocol = req.get_type()
? File "C:\Program Files\IBM\SPSS\Statistics\22\Python\lib\urllib2.py", line 245, in get_type
? ? raise ValueError, "unknown url type: %s" % self.__original
ValueError: unknown url type: src="http://c1.mifile.cn/f/i/2014/cn/placeholder-220!110x110.png" data-src="http://c1.mifile.cn/f/i/g/2015/xiaomiNOTE2-320-220!160x110.jpg" srcset="http://c1.mifile.cn/f/i/g/2015/xiaomiNOTE2-320-220!320x220.jpg
2018-01-27
我用的pycharm,今天才手寫的代碼,改了幾個小地方,都寫在注釋里面,樓主看看注意到沒有,謝謝。
import re
import urllib
req = urllib.request.urlopen('http://www.xianlaiwan.cn/course/list')
#此處加上decode(),不然拿下來的數據都是亂碼
buf = req.read().decode("utf-8")
#老師講課的url地址已經發生改變,改一下正則匹配就好
# listurl = re.findall(r'src=.+\.jpg', buf)
listurl = re.findall(r'//img.+?\.jpg', buf)
# 改成非貪婪模式就行了
#前面沒有了http:,那么這里手動加上
for index,app_id in enumerate(listurl):
? ? listurl[index] = str(app_id).replace('//', 'http://')
? ? print(index, listurl[index])
print(listurl)
i = 0
for url in listurl:
? ? #寫入模式修改為“wb+”,不然不支持將bytes寫入,親測
? ? f = open(str(i)+".jpg", "wb+")
? ? req = urllib.request.urlopen(url)
? ? buf = req.read()
? ? f.write(buf)
? ? i+=1
? ? f.close()
2018-01-18
我也是這個情況。。。
2017-05-08
2017-05-08