提示错误
f.write(buf)
TypeError: write() argument must be str, not bytes
def req_url():
req = urllib2.urlopen(url="https://coding.imooc.com/") # 打开图片列表页面
buf = req.read() # 读取图片列表页面
buf = buf.decode("utf-8") # 将Unicode 转换为字符串 python3中返回的是unicode
url_list = re.findall(r"//.+szimg.+\.jpg", buf) # 提取图片url信息列表
return url_list
def image_save():
i = 1
for url in req_url():
url = "http:" + url # 图片url拼接
# print(url + "\n") # 打印图片url
f = open("album/" + str(i) + ".jpg", "wb") # 打开图片存放地址 以二进制格式打开,因为是图片
try:
req = urllib2.urlopen(url) # 打开图片url
buf = req.read() # 读取图片信息
f.write(buf) # 保存图片
i += 1
finally:
if f:
f.close()这说明爬出的文件类型是bytes类型,你在打开文件的时候要使用'wb',而不是'w',这样就可以通过bytes写入了