SHELL脚本 | 移动云 批量下载产品帮助文档pdf
移动云本身没提供一键下载帮助文档的功能,但是对每个帮助文档的内容都可以导出为pdf文件,在拿移动云帮助文档做RAG的时候,可以通过脚本来实现批量下载产品的帮助文档文件
1.获取对应产品的outlineId
使用chrome浏览器,打开对应产品的帮助文档,如镜像服务IMS:https://ecloud.10086.cn/op-help-center/doc/article/40477
按F12 打开开发者工具,切换到【网络】标签,刷新页面,过滤连接关键字:tree?outlineId 找到该连接后面的ID,修改到脚本中JSON_URL
2.执行脚本
chmod +x down_help.sh
#/tmp/help 为下载的文件存放的目录
./down_help /tmp/help
#! /bin/bash
# author:[onebyte]
# date:[2025-02-26]
# version:[1.0]
# description:[用于批量下载移动云对应产品的帮助文档]
# usage:[usage:down_help.sh 下载目录]
##################################
# 设置URL和输出目录,不同产品的文档修改JSON_URL
JSON_URL="https://ecloud.10086.cn/op-help-center/request-api/service-api/outline/tree?outlineId=345"
ARTICLE_INFO_URL="https://ecloud.10086.cn/op-help-center/request-api/service-api/article/info/"
BASE_URL="https://ecloud.10086.cn/op-help-center/request-api/service-api/resource/file/"
OUTPUT_DIR=$1
mkdir -p "$OUTPUT_DIR"
#ARTICLE_ID=$(curl -s $JSON_URL | jq -c '.. | objects | select(.articleId != null) | .articleId')
while IFS= read -r id; do
JSON=$(curl -s $ARTICLE_INFO_URL${id} | jq -r '.data.pdfPublished')
PDFID=$(echo $JSON | jq -r '.uid')
FILENAME=$(echo $JSON | jq -r '.filename' | sed 's/[\/:*?"<>:()| ]/_/g')
OUTPUT_FILE="$OUTPUT_DIR/${FILENAME}"
curl -s -o "$OUTPUT_FILE" "$BASE_URL$PDFID"
#wget -q -P $OUTPUT_DIR $BASE_URL$PDFID/filename/$FILENAME
if [ $? -eq 0 ]; then
echo "Downloaded ${FILENAME}"
else
echo "Failed to download ID:${PDFID} 对应文件名 ${FILENAME}" | tee -a down_error.log
fi
done <<< "$ARTICLE_ID"