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('所有图片下载完成。')
学以致用! jddgh3 发表于 2024-4-24 09:25
这种如果数据量大怎么办呢
数据量大读取excel这一块莫得问题,但是下载图片的话,如果访问的服务器支持的话,建议开启多线程下载,不过一般情况下,如果用多线程批量下载,容易被检测出ip,然后封ip 思路明确! 这种如果数据量大怎么办呢
嗯,学习了 这个可以,最近工作上正好用到 谢谢分享! 学习一下。 兄弟下载链接做一下替换处理噻间接泄露个人信息了 未授权访问漏洞
页:
[1]
2