* 針對Liunx,Windows自行擴展。
* 無需Python3支持
腳本代碼如下:
#!/bin/bash
########################################################
# 程序名稱: 海洋CMS自動採集腳本
# 版本信息:seacmsbot/1.2
# 發佈鏈接: https://www.seacms.net/thread-8253.htm
# 使用方法:直接複製代碼到寶塔計劃任務shell腳本內容裏添加每小時任務使用
# 更新時間:2019.9.26
##########################################################
#請修改下面的網站域名及管理目錄
web_site="http://網站域名/管理目錄/admin_reslib2.php"
#請修改下面項內容爲"admin_reslib2.php"裏設置的訪問密碼(默認爲系統設置的cookie密碼)
web_pwd="8888e82e85bd4540f0defa3fb7a8e888"
#下面項內容爲資源站每日採集鏈接地址列表,請自行修改,每行一條,可添加多個,前後需添加引號。
#每日採集鏈接獲取方法:選擇"後臺-採集-資源庫列表",複製資源站右邊的"採集每天"的鏈接地址,去掉?前面的內容。
web_api=(
'?ac=day&rid=1&url=https://api.iokzy.com/inc/ldg_seackm3u8s.php'
'?ac=day&rid=2&url=http://www.zdziyuan.com/inc/s_ldgm3u8_sea.php'
)
#模擬用戶瀏覽器ua,請勿隨意修改,以免被目標防火牆攔截!
web_ua="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/76.0.3809.100 Safari/537.36 seacmsbot/1.2;"
#採集單頁
function get_content() {
echo "正在採集第$page頁..."
#echo " get_content: --->url:--->$1"
cResult=$(curl --connect-timeout 10 -m 20 -k -s -L -A "$web_ua" "$1" )
echo $cResult | grep -q "採集"
#echo -e "$1\n$cResult"
if [ "$?" = "0" ]; then
next_content "$cResult"
else
echo -e "採集失敗,請檢查設置!\n失敗鏈接-->$1\n返回信息-->$cResult\n採集結束,共0頁"
fi
}
#採集下頁
function next_content() {
#統計數據
Result=$(echo "$1" | tr "<br>" "\n")
a=$(echo "$Result" | grep -c "採集成功")
b=$(echo "$Result" | grep -c "更新數據")
c=$(echo "$Result" | grep -c "無需更新")
d=$(echo "$Result" | grep -c "跳過")
echo "採集成功-->已更$c部,新增$a部,更新$b部,跳過$d部"
let add+=$a
let update+=$b
let none+=$c
let jmp+=$d
#檢測並採集下頁
next_url=${1##*location.href=\'}
next_url=${next_url%%\'*}
#echo $next_url
if [ "${next_url:0:1}" = "?" ]
then
let page++
get_content "$web_site$next_url"
else
echo "採集結束,共$page頁"
fi
}
#腳本入口
echo "海洋CMS自動採集腳本開始執行 版本:v1.2"
starttime=$(date +%s)
update=0 #更新
add=0 #新增
none=0 #無變化
jmp=0 # 跳過
for url in ${web_api[@]};
do
if [[ ! -z $url ]]
then
web_param="$web_site$url&password=$web_pwd"
page=1
echo "開始採集:$url"
get_content $web_param
fi
done
endtime=$(date +%s)
echo "============================"
echo "入庫-->$add部"
echo "更新-->$update部"
echo "跳過-->$jmp部(未綁定分類或鏈接錯誤)"
echo "今日-->$[none+add+update]部"
echo "============================"
echo "全部採集結束,耗時$[endtime - starttime]秒"
根據個人環境修改,不做贅述。
實際採集網址獲取辦法:
第一步: 登錄網站後臺,進入資源庫列表,在你要採集的目標上點擊右鍵 ,比如在"採集當天"上點擊鼠標右鍵,選擇"複製鏈接地址"
比如這裏是:
http://127.0.0.1/admin/admin_reslib.php?ac=day&rid=1&url=https://api.iokzy.com/inc/ldg_seackm3u8s.php
第二步:去掉上一步複製到的內容"?"前面的內容,結果如下:
?ac=day&rid=1&url=https://api.iokzy.com/inc/ldg_seackm3u8s.php
這樣就得到了最終的採集網址
* 設置定時任務
1. 如果是寶塔,添加到計劃任務shell腳本內容,設置爲每小時執行,保存即可。
2. 非寶塔,可以用系統的計劃任務,方法是:
把修改好的代碼,另存爲"/var/www/job/seacmsbot.sh" ,在終端執行下面的代碼即可:
chmod +x var/www/job/seacmsbot.sh
echo "* */1 * * * var/www/job/seacmsbot.sh">>/etc/crontab
service crond start