req = urllib2.urlopen('https://www.imooc.com/') #抓取网页
buf = req.read() #返回一个str
listurl = re.findall(r'//.+\.jpg',buf) #利用
print listurl
i = 0
for url in listurl:
f = open(str(i)+'.jpg','w')
url1 = 'http:'+url #因为没有http开头,报错,所以我每个元素手动添加了
req = urllib2.urlopen(url1) #遍历打开网址
bug = req.read()
f.write(buf)
i += 1
if i == 10:
break
f.close()
在windows下,打开图片提示图片出错,求解答??
谢谢大家了!!!
buf = req.read().decode("utf-8") 没写decode图片出来一半或是错的图片,加了就正确了,谢谢
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
我用的pycharm,今天才手写的代码,改了几个小地方,楼主看看注意到没有,谢谢。
re urllib req = urllib.request.urlopen() buf = req.read().decode() listurl = re.findall(buf) indexapp_id (listurl): listurl[index] = (app_id).replace() (indexlisturl[index]) (listurl) i = url listurl: f = ((i)+) req = urllib.request.urlopen(url) buf = req.read() f.write(buf) i+=
重新爬去