如图,listurl是空的列表,用的python3
我用的pycharm,今天才手写的代码,改了几个小地方,都写在注释里面,楼主看看注意到没有,谢谢。
import re
import urllib
req = urllib.request.urlopen('http://www.imooc.com/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
问题就是老师讲课的时候图片地址是你所写的,但是现在已经变成了
//img4.mukewang.com/598027a90001df8006000338-240-135.jpg
稍微修改一下就可以用了
正则表达式写错了吧,是r''不是br''