批量获取API接口内容并下载(文本,视频等)(shell脚本)

简介

最近看到很多api接口网站,有视频,图片,文字,鸡汤等内容,看到这么多好的内容想收藏,一条一条弄又很浪费时间,于是写了一个脚本,需要找一个比较好的api站点(没有做访问限制的),不然一下子次数很多占用服务器资源的话管理员可能就会把你IP封掉。

适用范围

只适用于返回值为文本格式的内容,或者格式,如果返回值直接是mp4或图片请观看其他文章

脚本

脚本1

#!/bin/bash
# 脚本名称:api_download.sh 
# 版本:1.0.0 
# 作者:诺言 
# 创建日期:2023年8月2日 
# 最后修改日期:2023年8月2日


API_URL="XXXXX"     # 替换为你的 API URL
OUTPUT_FILE="response.txt"            # 保存返回内容的文本文件名
ITERATIONS=5                          # 循环的次数
DOWNLOAD_DIR="/opt/downloaded_files"  # 下载文件保存的目录

# 清空输出文件
echo "" > "$OUTPUT_FILE"

# 循环请求 API 并将返回内容追加写入文本文件
for ((i=1; i<=$ITERATIONS; i++))
do    printf "正在获取第 %s 个返回内容...\n" "$i"
    response=$(curl -s "$API_URL")
    echo "https:$response" >> "$OUTPUT_FILE"  
###这里的https://看需求可以酌情删掉,如果你获取调用php接口返回的值带https的话删掉就行了
done

# 创建下载目录
mkdir -p "$DOWNLOAD_DIR"

# 使用 wget 批量下载文件
counter=0
while IFS= read -r url
do
    ((counter++))
    printf "正在下载文件 %s...\n" "$counter"
    wget -q "$url" -P "$DOWNLOAD_DIR" --content-disposition
done < "$OUTPUT_FILE"

echo "已经批量下载到 $DOWNLOAD_DIR 目录下。"

脚本2

这个脚本显示的进度比较详细

#!/bin/bash
# 脚本名称:api_download.sh
# 版本:1.0.0
# 作者:诺言
# 创建日期:2023年8月2日
# 最后修改日期:2023年8月2日

API_URL="XXXX"  # 替换为你的 API URL
OUTPUT_FILE="response.txt"         # 保存返回内容的文本文件名
ITERATIONS=5                      # 循环的次数
DOWNLOAD_DIR="/opt/downloaded_files"  # 下载文件保存的目录

# 清空输出文件
echo "" > "$OUTPUT_FILE"
# 循环请求 API 并将返回内容追加写入文本文件
for ((i=1; i<=$ITERATIONS; i++))
do
    echo "正在获取返回内容..." 
    response=$(curl -s "$API_URL")

    # 每行一个返回内容
    echo "https:$response" | while IFS= read -r line
###这里的https://看需求可以酌情删掉,如果你获取调用php接口返回的值带https的话删掉就行了
    do
        echo "$line" >> "$OUTPUT_FILE"
    done

    # 显示保存每个返回内容的进度
    progress=$((100 * i / ITERATIONS))
    echo "已保存 $progress% 的返回内容"
done

# 创建下载目录
mkdir -p "$DOWNLOAD_DIR"

# 使用 wget 批量下载文件
counter=0
while IFS= read -r url
do
    ((counter++))
    printf "\n正在下载文件 %s...\n" "$counter"
    wget --progress=bar:force "$url" -P "$DOWNLOAD_DIR" -nc
done < "$OUTPUT_FILE"

echo "网址已经批量下载到 $DOWNLOAD_DIR 目录下。"

脚本3

去重

#!/bin/bash

API_URL="https://v.api.aa1.cn/api/api-girl-11-02/index.php?type=url" # 替换为您的API接口地址
DOWNLOAD_DIR="/path/to/download"        # 替换为您的下载目录

# 创建下载目录
mkdir -p "$DOWNLOAD_DIR"

# 获取API接口返回内容并保存到文本文件
for ((i=1; i<=20; i++)); do
    RESPONSE=$(curl -s "$API_URL")
    echo "https:$RESPONSE" >> responses.txt
###这里的https://看需求可以酌情删掉,如果你获取调用php接口返回的值带https的话删掉就行了

    # 计算并显示获取内容进度百分比
    PROGRESS=$((i * 100 / 20))
    echo -ne "获取API内容: $PROGRESS%\r"
done

echo -e "\nAPI content fetched successfully."

# 批量下载文件
cat responses.txt | xargs -n 1 -I {} wget -P "$DOWNLOAD_DIR" {}

# 删除下载目录中的重复文件
rsync -a --remove-source-files "$DOWNLOAD_DIR/" "$DOWNLOAD_DIR/../temp/"
rm -r "$DOWNLOAD_DIR"
mv "$DOWNLOAD_DIR/../temp/" "$DOWNLOAD_DIR"

# 显示下载文件进度百分比
TOTAL_FILES=$(wc -l < responses.txt)
DOWNLOADED_FILES=0


echo -e "\nAll files downloaded successfully."

 

 

上图

批量获取API接口内容并下载(文本,视频等)(shell脚本)

原创文章,作者:AIRF,如若转载,请注明出处:http://www.ai-rf.com/index.php/2023/08/02/%e6%89%b9%e9%87%8f%e8%8e%b7%e5%8f%96api%e6%8e%a5%e5%8f%a3%e5%86%85%e5%ae%b9%e5%b9%b6%e4%b8%8b%e8%bd%bdshell%e8%84%9a%e6%9c%ac/

(0)
AIRFAIRF
上一篇 2023年8月1日
下一篇 2023年8月3日

相关推荐

  • MQ启动与关闭

    MQ中间件的启动与关闭 1、MQ的启动 # su – mqm$ strmqm QM1如果启动默认队列管理器,strmqm后可以忽略队列管理器名称。 2、MQ的关闭 一般情况下,我们…

    芯片设计 2021年11月21日
  • 开源免费的知识库文档管理系统(合集+排名)

    前言 最近心血来潮想做一个知识库文档管理系统,于是各种搜索统计到了如下的一些开源系统,分享给大家   知名度排名 以下排名为GPT统计,仅供参考: 按照知名度进行排序: …

    芯片设计 2023年5月30日
  • 宝塔降级任意版本(保姆级教程)

    宝塔历史版本下载(github中存在1.0.3-7.9.10符合大多数人使用的版本,部分版本如下): https://github.com/weiwang3056/baota_re…

    芯片设计 2023年12月18日
  • 如何检查 Linux 服务器是否遭受 DDoS 攻击?

    1. 写在前面 DDoS(Distributed Denial-of-Service)攻击是最常见的服务器安全威胁之一,攻击频率和强度逐年稳步上升。本文主要介绍如何通过资源监控和及…

    芯片设计 2024年1月30日
  • 高性能是什么?其本质是什么东东?

    高性能涉及的东西有很多,该怎么才能记住呢? 我觉得这是一个很有代表性的问题,相信很多人都有类似的困惑,所以决定写篇文章来好好聊聊这个问题。 确实是这样,当初在准备高性能相关的面试问…

    芯片设计 2022年12月7日
  • 2025年最新liunx宝塔面板9.6.0开心版 – 宝塔开心版脚本

    因本站授权是专业版,企业版插件不能用,本站没有对脚本加密下载原都是官方的  本站是纯公益 注:公益项目,仅供个人测试,请勿使用于商业用途! 注:公益项目,仅供个人测试,请勿使用于商…

    2025年2月26日
  • 心情不好极度抑郁的文案

    1.分享情绪有什么用呢 人的悲欢并不相通 2.微信里有你就够了 偶尔能偷偷看看你就够了 至于你是不是我的 能不能拥有你在不在一起真的没那么重要了 3.我越安静、越忍让、越平和、越无…

    生活情感 2022年10月1日
  • 织梦 DeDeCMS转EyouCMS教程

    简介 织梦CMS是一款常用的内容管理系统,但随着市场竞争的加剧,很多用户开始考虑将其迁移到其他平台。 给大家展示转成功的图吧 织梦CMS转易优CMS数据转移步骤: 一、准备步骤 在…

    芯片设计 2023年8月31日
  • 宝塔开心版 面板8.1.0企业版 开心破解版脚本

    本脚本仅供研究使用 禁止用于商业以及非法用途 !使用后请在24小时内删除 宝塔官方保留所有权利!为了提高安装效率,安装节点已经迁移到其他服务器如果遇到安装失败无法下载等问题请及时反…

    2024年4月29日
  • 利用Vercel搭建各大镜像站

    项目:https://github.com/XiaoXinYo/Easy-Reverse-Proxy Vercel部署 1. Fork项目. 2 . 修改配置. 3. Vercel…

    芯片设计 2024年9月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注