设置定时采集数据
设置好定时任务后,海洋CMS可定时从EFV拉取新数据。
如果你有安装宝塔面板,且任何服务器的宝塔面板都可以直接设置,进入宝塔后台,找到左侧的计划任务,点击添加,如下:
任务类型为Shell
脚本,名称和执行周期自行设置,海洋CMS
采集脚本如下:
#!/bin/bash
#https://localhost/1t4j0x为后台登录地址
web_site="https://localhost/1t4j0x/admin_reslib2.php"
# 登录海洋CMS后台 → 系统 → 网站资料设置 → 将cookie加密码替换到此处
web_pwd="eb0c82f7218f66d5030f934427009b78"
#https://m3u8.caiji.com/seacms/vod/xml为采集链接
web_api=(
'?ac=day&rid=1&url=https://m3u8.caiji.com/seacms/vod/xml'
)
web_ua="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 seacmsbot/2.0;"
#采集单页
function get_content() {
echo "正在采集:$1"
cResult=$(curl --connect-timeout 10 -m 20 -k -s -L -A "$web_ua" "$1")
echo $cResult | grep -q "采集"
if [ "$?" = "0" ]; then
next_content "$cResult"
else
echo "采集失败: $1"
fi
}
#采集下页
function next_content() {
#检测并采集下页
next_url=${1##*location.href=\'}
next_url=${next_url%%\'*}
if [ "${next_url:0:1}" = "?" ]; then
get_content "$web_site$next_url"
else
echo "当前资源采集完成"
fi
}
#脚本入口
echo "开始执行采集任务..."
starttime=$(date +%s)
for url in ${web_api[@]}; do
if [[ ! -z $url ]]; then
web_param="$web_site$url&password=$web_pwd"
get_content $web_param
fi
done
endtime=$(date +%s)
echo "采集结束,耗时$[endtime - starttime]秒"
设置好海洋CMS
后台地址和cookie
加密码后,再一起复制粘贴进shell
内容框即可。
如果你没有安装过宝塔面板,可直接使用SSH
客户端,登录EFV
所在的服务器,运行命令:
#下载采集脚本
wget --no-check-certificate -O '/opt/sea.sh' https://file.zhuanma.co/sea.sh
chmod +x /opt/sea.sh
#后面的https://newdomain.com/seacms/vod/xml为你的EFV采集地址,如有KEY的话,请带上KEY,替换好相关内容后再运行该命令
sed -i 's|https://m3u8.caiji.com/seacms/vod/xml|https://newdomain.com/seacms/vod/xml|g' /opt/sea.sh
#后面的eb0c82f7218f66d5030f934427003453为你的海洋CMS加密码,替换好相关内容后再运行该命令
sed -i 's|eb0c82f7218f66d5030f934427009b78|eb0c82f7218f66d5030f934427003453|g' /opt/sea.sh
echo '*/30 * * * * bash /opt/sea.sh' >> crontab.bak
crontab crontab.bak
rm -rf crontab.bak
该命令行是每30
分钟运行一次,可在运行之前,自行调整时间,怕调整出问题的,可直接默认。