如何修改GoogleImageCrawler下载文件的保存文件名?
如何为icrawler下载的文件指定自定义文件名
当你执行google_Crawler.crawl(keyword="person smiling", max_num=1)下载图片时,有两种可靠方式自定义文件名:
方法1:通过自定义下载器类重命名
继承icrawler的ImageDownloader类,重写get_filename方法直接指定文件名,这是最灵活的方案:
from icrawler.builtin import GoogleImageCrawler from icrawler.downloader import ImageDownloader from icrawler.utils import get_absolute_path class CustomDownloader(ImageDownloader): def get_filename(self, task, default_ext): # 替换成你需要的文件名,比如"smiling_person.jpg" return get_absolute_path(self.storage.root_dir, "smiling_person.jpg") # 初始化爬虫时绑定自定义下载器 google_Crawler = GoogleImageCrawler( downloader_cls=CustomDownloader, storage={"root_dir": "./your_save_directory"} # 替换为你的保存路径 ) google_Crawler.crawl(keyword="person smiling", max_num=1)
方法2:下载后手动重命名
如果不想修改爬虫逻辑,可以在下载完成后找到默认命名的文件并手动重命名。icrawler默认会用000001.xxx这类序列名保存文件:
import os from icrawler.builtin import GoogleImageCrawler save_dir = "./your_save_directory" google_Crawler = GoogleImageCrawler(storage={"root_dir": save_dir}) google_Crawler.crawl(keyword="person smiling", max_num=1) # 遍历目录找到下载的图片并重命名 for filename in os.listdir(save_dir): if filename.lower().endswith((".jpg", ".png", ".jpeg")): old_path = os.path.join(save_dir, filename) new_path = os.path.join(save_dir, "smiling_person.jpg") os.rename(old_path, new_path) break
注意点
- 方法1适合批量下载场景,无需额外遍历操作;
- 确保自定义文件名的扩展名与图片实际格式匹配,避免格式错误;
- 如果目标文件名已存在,两种方法都会覆盖原有文件,需提前处理文件冲突。
内容的提问来源于stack exchange,提问作者Among Us
相关产品推荐
相关产品推荐

