shell脚本解析cnbeta的rss内容
#!/bin/bash #for cnbeta rss #source https://rss.cnbeta.com/rss #example # #/rss/channel/item/pubDate=Sun, 20 Jun 2021 03:57:12 GMT #/rss/channel/item/author=raymon725 #/rss/channel/item/description= <p>尽管 LG 早在今年 4 月份就证实要淡出移动设备市场,并且很快就停掉了新机的生产研发。<strong>不过近日又有传闻称,LG 仍将很快推出几款智能机,其中包括了几款K 系列、Stylo 7、以及 Velvet 2 Pro 。</strong>现在,谷歌 Play 控制台已经证实了它们的存在。那么问题来了 ?? LG 是否打算再次回归智能手机市场呢?</p> <a href="https://www.cnbeta.com/articles/tech/1142819.htm" target="_blank"><strong>阅读全文</strong></a> #/rss/channel/item/link=https://www.cnbeta.com/articles/tech/1142819.htm #/rss/channel/item/title=Google Play控制台曝光LG Velvet 2 Pro、Stylo 7、K33与K35智能机 #发送间隔 sleepTime=15 #保留的记录行数 logLine=600 #每次清理的行数 cleanLine=100 #工作目录 path0="/rss/cnbeta" if [ ! -d "${path0}" ];then mkdir -p "${path0}";fi rssFile="${path0}/rss" if [ ! -f "${rssFile}" ];then touch "${rssFile}";fi rssSend="${path0}/rssSend" if [ ! -f "${rssSend}" ];then touch "${rssSend}";fi sendResult="${path0}/sendResult" if [ ! -f "${sendResult}" ];then touch "${sendResult}";fi rssUrl="https://rss.cnbeta.com/rss" if [ -f "${path0}/.lock" ];then exit 0;fi touch "${path0}/.lock" checkBin="xml2 jq" for check in $(echo "${checkBin}");do which "${check}" >/dev/null 2>&1 || yum install "${check}" -y >/dev/null 2>&1 which "${check}" >/dev/null 2>&1 || yum install "${check}" -y >/dev/null 2>&1 done function messageSend() { title=$1 description=$2 linePC=$3 lineWAP=4 #your messageSend code } #检测发送是否成功,例上方发送完成后的返回内容: {"ok": true} #发送结果检测位 resultFlag="ok" #发送结果成功内容 resultOK="true" curl -s "${rssUrl}" | xml2 | tail -n +12 | tac | grep -vE '/rss/channel/item/guid|/rss/channel/item/source' > "${rssFile}" if [ $? == 0 ];then echo "/rss/channel/item" >> "${rssFile}" cat "${rssFile}" | while read line;do #action if [ "$line" == "/rss/channel/item" ];then if ! $(grep -q "${link}" "${rssSend}");then messageSend "${title}" "${description}" "${linkPC}" "${linkWAP}" > "${sendResult}" resultStatu=$(jq ."${resultFlag}" "${sendResult}") if [ "$resultStatu" == "${resultOK}" ];then echo "${link}" >> "${rssSend}" sleep "$sleepTime" fi fi else #date if $(echo $line | grep -q "/rss/channel/item/pubDate");then pubDate=$(echo $line | awk -F '=' '{print $2}') pubDate=$(date -d "${pubDate}" "+%Y-%m-%d %H:%M:%S") fi #author if $(echo $line | grep -q "/rss/channel/item/author");then author=$(echo $line | awk -F '=' '{print $2}') fi #description if $(echo $line | grep -q "/rss/channel/item/description");then description=$(echo $line | awk -F '=' '{print $2}' | sed 's#<[^>]*>##g;s#&[^;]*;##g' | awk -F '<' '{print $1}') fi #link if $(echo $line | grep -q "/rss/channel/item/link");then link=$(echo $line | awk -F '=' '{print $2}') linkID=$(echo $link | awk -F '[./]+' '{print $7}') linkPC="${link}" linkWAP="https://m.cnbeta.com/view/${linkID}.htm" fi #title if $(echo $line | grep -q "/rss/channel/item/title");then title=$(echo $line | awk -F '=' '{print $2}') fi fi done fi if [ "$(wc -l "${rssSend}" | awk '{print $1}')" -gt "${logLine}" ];then sed -i "1,${cleanLine}d" "${rssSend}";fi unlink "${path0}/.lock"
© 著作权归作者所有
文章评论(0)