python批量下载txt内的链接(图片)

python批量下载txt内的链接(图片)

liaomsn
2023-10-31 / 3 评论 / 15 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年10月31日,已超过534天没有更新,若内容或图片失效,请留言反馈。

首先创建一个.py文件 如download_gifs.py

import re
import os
import requests

# 创建一个新文件夹来存储下载的文件
if not os.path.exists('downloaded_files'):
    os.mkdir('downloaded_files')

# 获取已下载的文件名
downloaded_files = os.listdir('downloaded_files')

# 打开文本文件
with open('your_text_file.txt', 'r') as file:
    text = file.read()

# 使用正则表达式提取文件链接
file_links = re.findall(r'http[s]?://[^\s<>"]+\.\w{3,4}', text)

successful_downloads = 0

for link in file_links:
    filename = link.split('/')[-1]  # 获取文件名
    save_path = os.path.join('downloaded_files', filename)  # 保存路径

    # 提取文件名中的斜杠后的部分
    file_name_only = filename.split('/')[-1]

    # 如果文件名在已下载文件列表中,跳过下载
    if file_name_only in downloaded_files:
        print(f"跳过已下载的文件: {file_name_only}")
    else:
        try:
            # 发送HTTP请求,包括Range头部,以请求未下载部分
            response = requests.get(link, stream=True)

            # 检查响应状态码
            if response.status_code == 200:
                with open(save_path, 'wb') as file:
                    for chunk in response.iter_content(1024):
                        file.write(chunk)
                successful_downloads += 1
            else:
                print(f"无法下载链接 {link}: HTTP错误 {response.status_code}")
        except Exception as e:
            print(f"无法下载链接 {link}: {e}")

print(f"成功下载了 {successful_downloads} 个文件")

再就是把连接放到txt 如:your_text_file.txt
txt 里面的内容

https://npm.elemecdn.com/typecho-joe-latest/assets/img/lazyload.jpg

然后执行

python3 download_gifs.py

注意win之注意执行路径cd 盘符号:文件路径 如:cd h:tupian/wenjian
这样你就可以得到你想要的批量下载图片了

本文共 200 个字数,平均阅读时长 ≈ 1分钟
1

评论 (3)

取消
  1. 头像
    quflcgnimn
    Windows 10 · Google Chrome

    哈哈哈,写的太好了https://www.lawjida.com/

    回复
  2. 头像
    qthaucfpcw
    Windows 10 · Google Chrome

    每个标点都承载着思考的重量。

    回复
  3. 头像
    wnlueafaen
    Windows 10 · Google Chrome

    作者的情感表达细腻入微,让人在阅读中找到了心灵的慰藉。

    回复
歌曲封面
0:00