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

来源:4-2 python正则表达式练习

吉吉chen

2020-07-17 10:16

提示错误

f.write(buf)

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

写回答 关注

2回答

  • qq_主教练_0
    2020-11-04 00:26:51
    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()


  • qq_慕仙9192785
    2020-08-25 14:10:45

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

python正则表达式

如何使用正则处理文本,带你对python正则有个全面了解

80575 学习 · 174 问题

查看课程

相似问题