Bash Shell获取建行官网公告列表
没啥实质作用,纯粹是因为懒得打开浏览器的情况下想确认建行有无发表新公告,练手一下...,查看具体的公告内容,还得浏览器打开详情页网址,所以,然并卵~~,仅做记录,以备启发;
网页实际截图:
Bash函数代码:
函数名定义为ccb-notice
,其中使用到了一个Python写的解析HTML DOM的小工具pquery
(具体代码见:https://github.com/hupili/pquery)
ccb-notice() {
local listPage=$(curl -sSL http://www.ccb.com/cn/home/indexv3.html 2>/dev/null|pquery a -f '{text}||{href}'|grep '最新公告'|awk -F '|' '{print "http://www.ccb.com"$NF}' 2>/dev/null)
if [ ! -z "$listPage" ];then
echo -e "列表页网址:\n\t$listPage"
echo -e "————————————————————————————————————————————————————————————————————————"
local listContent=$(curl -ssL "$listPage" 2>/dev/null|pquery 'div.section>div>ul a' -f '{title}|http://www2.ccb.com/cn/v3/include/notice/{href}')
[ -z "$listContent" ] && print_color 9 "获取列表内容失败..." && return
local listDate=$(curl -ssL "$listPage" 2>/dev/null|pquery 'div.section>div>ul span' -p text)
local tmpDateFile=$(mktemp)
echo "$listDate">$tmpDateFile
local listContent=$(echo "$listContent"|paste -d '|' $tmpDateFile -)
echo "$listContent"|awk -F '|' '{printf "["$1"] "$2"\n\t"$NF"\n\n"}'
[ -f "$tmpDateFile" ] && rm -f "$tmpDateFile"
fi
}