Python爬虫如何批量保存图片?

img
这是我的报错截图,我能理解这个报错是什么意思,但并不知道怎么解决


#encoding='utf-8'
import requests
import re

from Tools.scripts.objgraph import ignore

url='https://mp.weixin.qq.com/s/1hdWEusrm0MJZexxC_OSaw'
head={"User-Agent": "Mozilla/5.0 "}

def get_text(response):
    # 优先使用 chardet 预测的 encoding, 其次使用 http header 提供的 encoding
    source_encoding = response.apparent_encoding or response.encoding
    if source_encoding is None:
        # 说明是二进制文件
        raise Exception
    elif source_encoding == 'GB2312':
        source_encoding = 'GBK'
    return response.content.decode(source_encoding, errors="ignore")

response=requests.get(url,headers=head)
html=get_text(response)
with open('E:/Python文件/爬虫/高一新教材/html.txt','w',encoding='utf-8') as f:
    f.write(html)

pattern = re.compile(r'<img class=".*?src="(.*?)"', flags=re.S)
image_url=pattern.findall(str(response.content.decode('utf-8')))
del image_url[0]
print(str(image_url))

with open('E:/Python文件/爬虫/高一新教材/image_url.txt','w',encoding='utf-8') as f:
    f.write(str(image_url))

for src in image_url:
#将图片转为二进制
    image_data=requests.get(url=src,headers=head).content#保存到本地

    with open('E:/Python文件/爬虫/高一新教材/新高一教材/{}.jpeg'.format(src[-105:]),'wb') as fp:
        fp.write(image_data)

这是我的代码,可能有比较多的问题,我说说我的逻辑思路:
1.向目标网址获取html
2.用正则表达式从html中找到需要的图片的url
3.将图片保存到本地
我的代码之间还插入了一些奇奇怪怪的代码,但影响不大
而我要提的问题是怎么将这些图片批量保存下来?

最后两行我实在看不懂 但是我要给你提个醒 路径前面最好加个r 以防变量捣乱

例:第31行

with open(r'E:/Python文件/爬虫/高一新教材/image_url.txt','w',encoding='utf-8') as f:

结束记得close

img
取图片链接的后105个字符作为图片名字,其中有Windows规定不允许在文件和文件夹名称中使用的字符,所以你创建文件失败了

图片存到本地的时候名称用数字代替不就行了么,每个图片数字+1