为了账号安全,请及时绑定邮箱和手机立即绑定

我不能把图片下载下载下来,和我用Python3有关,但我解决不了

提示错误

f.write(buf)

TypeError: write() argument must be str, not bytes

正在回答

2 回答

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()


1 回复 有任何疑惑可以回复我~

这说明爬出的文件类型是bytes类型,你在打开文件的时候要使用'wb',而不是'w',这样就可以通过bytes写入了

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

举报

0/150
提交
取消

我不能把图片下载下载下来,和我用Python3有关,但我解决不了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信