亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

新手求解,謝謝

import urllib.request
import re


req = urllib.request.urlopen('http://www.xianlaiwan.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()

出現問題:http://img1.sycdn.imooc.com//59802adb0001b1f106640512.jpg

正在回答

2 回答

我自己試了一下,發現會讀取出這種如圖1的結果,我個人猜測是因為在正則表達式中使用了+這個貪婪模式的字符,所以會盡量匹配多的字符,所以看圖中就知道,它把兩個地址的字符串都匹配進去了,因為兩個字符串連接在一起也是http開頭,.jpg結尾的,把“listurl = re.findall(r'http:.+\.jpg',buf)”改成“listurl = re.findall(r'http:.+?\.jpg',buf)”,讀取的結果就正確了。以上是個人觀點,如有不足之處還望指出。

http://img1.sycdn.imooc.com//5982cf170001047a10650489.jpg

http://img1.sycdn.imooc.com//5982cf1800015a9d10750491.jpg


2 回復 有任何疑惑可以回復我~
#1

清一色610 提問者

嗯嗯,我改了,也正確了,謝謝!
2017-08-04 回復 有任何疑惑可以回復我~
#2

丶Esc3626950

好頂贊?。。?!
2017-09-04 回復 有任何疑惑可以回復我~

你抓取的地址貌似不正確吧?打印的地址之中還帶有“src=”的

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

新手求解,謝謝

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號