Lengxiy 发表于 2024-4-24 09:03

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

本帖最后由 Lengxiy 于 2024-4-24 12:47 编辑

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


#这里假设链接最后的图片是以工号命名可以下载的
#读取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 发表于 2024-4-24 09:14

学以致用!

Lengxiy 发表于 2024-4-24 09:35

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

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

LIXIAOYAO99 发表于 2024-4-24 09:20

思路明确!

jddgh3 发表于 2024-4-24 09:25

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

opacity 发表于 2024-4-24 09:30

嗯,学习了

jieshisan 发表于 2024-4-24 09:34

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

yoga2joker 发表于 2024-4-24 09:35

谢谢分享!

laustar 发表于 2024-4-24 09:43

学习一下。

顾笙233 发表于 2024-4-24 10:11

兄弟下载链接做一下替换处理噻间接泄露个人信息了 未授权访问漏洞
页: [1] 2
查看完整版本: python批量下载excel里面的工号对应的图片地址链接并保存至本地