Bash Shell获取建行官网最新公告列表(Bash Shell抓取网页小案例)

stevehe 2022年12月20日 114次浏览

Bash Shell获取建行官网公告列表

没啥实质作用,纯粹是因为懒得打开浏览器的情况下想确认建行有无发表新公告,练手一下...,查看具体的公告内容,还得浏览器打开详情页网址,所以,然并卵~~,仅做记录,以备启发;

网页实际截图:

image.png

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
}

运行效果截图:

image.png