新手求解,謝謝
import urllib.request
import re
req = urllib.request.urlopen('http://idcbgp.cn/course/list')
buf = req.read().decode('utf-8')
listurl = re.findall(r'http:.+\.jpg',buf)
print(listurl)
i = 0
for url in listurl:
??? f = open(str(i)+'.jpg','wb')
??? req = urllib.request.urlopen(url)
??? buf = req.read()
??? f.write(buf)
??? i += 1
??? f.close()
出現(xiàn)問題:
2017-08-03
我自己試了一下,發(fā)現(xiàn)會讀取出這種如圖1的結果,我個人猜測是因為在正則表達式中使用了+這個貪婪模式的字符,所以會盡量匹配多的字符,所以看圖中就知道,它把兩個地址的字符串都匹配進去了,因為兩個字符串連接在一起也是http開頭,.jpg結尾的,把“l(fā)isturl = re.findall(r'http:.+\.jpg',buf)”改成“l(fā)isturl = re.findall(r'http:.+?\.jpg',buf)”,讀取的結果就正確了。以上是個人觀點,如有不足之處還望指出。
2017-08-03
你抓取的地址貌似不正確吧?打印的地址之中還帶有“src=”的