每日一问,问问有没有大佬知道如何批量下载类似这个网站的照片

四级用户 skk4120356 1天前 693

https://repository.duke.edu/dc/gamble?f%5Bseries_ssim%5D%5B%5D=Sojourn%2C+1908%3A+China

手动一个一个下载太慢了

360截图20250801110943476.jpg


上一篇:老黄翻车了!
下一篇:这EA比卡婊都会炒冷饭
最新回复 (7)
  • 五级用户 wenbin5243 1天前
    0 2
    看看图片命名有没有规律,有就用迅雷批量下来,没有就找个爬虫脚本改一改
  • 四级用户 skk4120356 1天前
    0 3
    wenbin5243 看看图片命名有没有规律,有就用迅雷批量下来,没有就找个爬虫脚本改一改
    没有规律,都是乱码,爬虫脚本对我来说太高端了
  • 五级用户 vDtv3vNZoE5d 1天前
    0 4

    甘博摄影集,zlibrary直接搜,216MB,质量应该和网站上的差不多,我下载了几张,原图都是几百KB。

    ---

    看了下,下载的epub里的图片是压缩过的。

  • 四级用户 woyaodl 1天前
    1 5

    下载TinyTask才35K录制一次操作,然后打开100个页面,自动重复操作。

    录制速度慢无所谓,它能加速最高100倍

  • 五级用户 vDtv3vNZoE5d 1天前
    0 6

    让Gemini写了个爬虫,试了下可以下载,用图片描述来命名下载的图片。

    将下面的代码保存到 download.py

    命令行中输入 Python3 download.py 

    按回车下载,会自动创建文件夹。

    (需要安装python3,命令行中输入 pip3 install requests,lxml 安装依赖库)


    import requests
    from lxml import html
    import os
    import time
    import re
    def download_images_with_descriptive_names():
        base_url = "?f%5Bcommon_model_name_ssi%5D%5B%5D=Item"
        download_folder = "gamble_descriptive_images"
        if not .exists(download_folder):
            os.makedirs(download_folder)
        total_pages = 250
        for page_num in range(1, total_pages + 1):
            page_url = f"{base_url}&page={page_num}"
            print(f"\n--- 正在处理第 {page_num} 页, URL: {page_url} ---")
            try:
                response = requests.get(page_url, timeout=10)
                response.raise_for_status()
            except  as e:
                print(f"获取第 {page_num} 页失败: {e}")
                continue
            tree = html.fromstring()
            image_blocks = tree.xpath('//div[contains(@class, "blacklight-image")]')
            if not image_blocks:
                print(f"第 {page_num} 页未找到任何图片信息块。")
                continue
            for i, block in enumerate(image_blocks, 1):
                thumbnail_link = block.xpath('.//img[contains(@class, "img-thumbnail")]/@src')
                if not thumbnail_link:
                    continue
                thumbnail_link = thumbnail_link[0]
                
                image_description = block.xpath('.//a[@itemprop="name"]/text()')
                if not image_description:
                    ark_id = thumbnail_link.split('/')[3]
                    filename = ark_id + ".jpg"
                else:
                    filename = image_description[0].strip()
                    filename = re.sub(r'[\\/:*?"<>|]', '', filename)
                    filename = filename[:100].strip() + ".jpg"
                if '!350,350' in thumbnail_link:
                    high_res_link = thumbnail_link.replace('!350,350', 'full')
                else:
                    continue
                full_download_url = f"}"
                file_path = .join(download_folder, filename)
                print(f"  > 正在处理第 {i} 个图片: {filename}")
                try:
                    if not .exists(file_path):
                        image_data = requests.get(full_download_url, stream=True, timeout=30)
                        image_data.raise_for_status()
                        
                        with open(file_path, 'wb') as f:
                            for chunk in image_data.iter_content(chunk_size=8192):
                                f.write(chunk)
                        print(f"  > 下载成功: {filename}")
                    else:
                        print(f"  > 文件已存在,跳过: {filename}")
                except  as e:
                    print(f"  > 下载失败: {e}")
                time.sleep(0.5)
            print(f"\n第 {page_num} 页处理完毕。")
            time.sleep(2)
        print("\n所有图片处理完毕。")
    if __name__ == "__main__":
        download_images_with_descriptive_names()


  • 五级用户 vDtv3vNZoE5d 1天前
    0 7

    sc_2025-08-01 11.47.48.png

  • 四级用户 skk4120356 1天前
    0 8
    vDtv3vNZoE5d
    厉害了大佬,历史贴都打分了
    • 老男人游戏网配套论坛
      9
        立即登录 立即注册
发新帖
本论坛禁止发布SWITCH和PS4相关资源,若有其他侵权内容,请致邮3360342659#qq.com(#替换成@)删除。