python批量下载excel里面的工号对应的图片地址链接并保存至本地

查看 64|回复 9
作者:Lengxiy   
这里提供最简单的参考例子,会自动识别“姓名”和“工号”
并且每个表都会遍历,下载每个表里面的工号照片,自动替换下载链接里面的工号,然后保存照片为姓名
有需要自行修改,这个代码来源于工作需要,贡献了就


微信截图_20240424090126.png (174.15 KB, 下载次数: 0)
下载附件
1
2024-4-24 09:01 上传

[Python] 纯文本查看 复制代码
#这里假设链接最后的图片是以工号命名可以下载的
#读取excel里面的工号
#excel内可以有多张表
#但是每个表里面必须要要有【工号】【姓名】
#图片的下载链接自行替换(第35行)
#照片会以姓名命名
import pandas as pd
import requests
from os import mkdir
from os.path import exists
# 读取Excel文件
excel_path = 'image_names.xlsx'  # 替换为你的Excel文件路径
df = pd.read_excel(excel_path, sheet_name=None, dtype={'工号': str})  # 读取所有工作表
# 下载图片的函数
def download_image(url, save_path):
    response = requests.get(url)
    if response.status_code == 200:
        with open(save_path, 'wb') as f:
            f.write(response.content)
# 遍历每个工作表
for sheet_name, sheet_data in df.items():
    # 为每个工作表创建文件夹
    if not exists(sheet_name):
        mkdir(sheet_name)
   
    # 遍历工作表中的每一行
    for index, row in sheet_data.iterrows():
        student_id = str(row['工号'])  # 获取学号,并转换为字符串
        student_name = str(row['姓名'])  # 获取姓名,并转换为字符串
        image_url = f'https://XXXXX/XXXX/XXXXo/{student_id}.jpg'  # 构造图片下载链接
        image_save_path = f'{sheet_name}/{student_name}.jpg'  # 构造图片保存路径
        
        # 下载并保存图片
        download_image(image_url, image_save_path)
        print(f'已下载:{image_save_path}')
print('所有图片下载完成。')

姓名, 图片

wkdxz   

学以致用!
Lengxiy
OP
  


jddgh3 发表于 2024-4-24 09:25
这种如果数据量大怎么办呢

数据量大读取excel这一块莫得问题,但是下载图片的话,如果访问的服务器支持的话,建议开启多线程下载,不过一般情况下,如果用多线程批量下载,容易被检测出ip,然后封ip
LIXIAOYAO99   

思路明确!
jddgh3   

这种如果数据量大怎么办呢
opacity   

嗯,学习了
jieshisan   

这个可以,最近工作上正好用到
yoga2joker   

谢谢分享!
laustar   

学习一下。
顾笙233   

兄弟下载链接做一下替换处理噻  间接泄露个人信息了 未授权访问漏洞
您需要登录后才可以回帖 登录 | 立即注册

返回顶部