python 爬取图片存储到文件夹问题

问题遇到的现象和发生背景

我想抓取一部漫画,离线观看,
要求:
每一章节创建单独一个文件存放,文件夹按照第一章 第二章 第三章顺序存储
抓取的图片按照,网页上的顺序保存,为0 1 2 3

目前没有报错,图片顺序存储已经完成
但是目录只能按照,抓取到的章节id存储
试想在创建文件夹的时候定义个变量去计数,但是,创建完一个之后就不创建了

问题相关代码,请勿粘贴截图
  # 保存图片
  def save_img(self, url, name):
        opener = urllib.request.build_opener()
        opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36')]
        urllib.request.install_opener(opener)
        urllib.request.urlretrieve(url, name)

    # 这个函数创建文件夹
    def create_mkdir(self, filename_path):
        path = filename_path.strip()
        isExists = os.path.exists(filename_path)
        if not isExists:
            print('创建名字叫做', filename_path, '的文件夹')
            os.makedirs(path)
            print('创建成功!')
        else:
            print(path, '文件夹已经存在了,不再创建')

    def get_book_url(self):
        soup_book_list = self.get_soup(self.url)
        for new in soup_book_list.select('.view-win-list'):
            if len(new.select('a')) > 0:
                url_list = new.findAll('a')
                for j in url_list:
                    url = self.Hurl + j['href']
                    url_id = url.split('/')[-1]
                    book_url = 'https://www.*****.top/chapter/'+url_id
                    self.create_mkdir(self.filename_path + url_id)
                    soup_img = self.get_soup(book_url)
                    x = 0
                    for img_list in soup_img.select('.comicpage'):
                        img = img_list.findAll('img')
                        for i in img:
                            img_url = i['data-original']
                            print(img_url)
                            self.save_img(img_url, self.filename_path + url_id + '/%s.jpg' % x)
                            x += 1
                            # 输出下载第几张
                            print('正在下载第%d张' % x)
运行结果及报错内容

我的解答思路和尝试过的方法

目前没有报错,图片顺序存储已经完成
但是目录只能按照,抓取到的章节id存储
试想在创建文件夹的时候定义个变量去计数,但是,创建完一个之后就不创建了

我想要达到的结果

文件夹,抓取的图片按照顺序命名
文件夹命名为:第一章 第二章 第三章
图片命名为:0 1 2 3

问下个各位要怎么解决,文件夹顺序存储的问题

你的文件夹是由self.create_mkdir(self.filename_path + url_id) 这行代码生成的,所以文件夹的名字是url_id。你只需要多定义一个变量作为文件夹名字就可以了,代码如下:

def get_book_url(self):
        file_id = 1    # 定义新的变量
        soup_book_list = self.get_soup(self.url)
        for new in soup_book_list.select('.view-win-list'):
            if len(new.select('a')) > 0:
                url_list = new.findAll('a')
                for j in url_list:
                    url = self.Hurl + j['href']
                    url_id = url.split('/')[-1]
                    book_url = 'https://www.*****.top/chapter/'+url_id
                    self.create_mkdir(self.filename_path + "第{}章".format(file_id))   # 修改了这一行
                    file_id += 1 
                    soup_img = self.get_soup(book_url)
                    x = 0
                    for img_list in soup_img.select('.comicpage'):
                        img = img_list.findAll('img')
                        for i in img:
                            img_url = i['data-original']
                            print(img_url)
                            self.save_img(img_url, self.filename_path + url_id + '/%s.jpg' % x)
                            x += 1
                            # 输出下载第几张
                            print('正在下载第%d张' % x)

url_id 是一个递增的唯一值吗?我看你代码中print的地方不少,具体的print出来的输出可以发一下吗?

把所有图片生成一个列表,用索引做文件夹名就可以,
你可以发个网址给我试下