开发工具:
文件大小: 3kb
下载次数: 0
上传时间: 2016-11-23
详细说明: 通过抓取有道词典网页代码,截取想要的信息,格式化输出到命令行。搞定!对柯林斯英汉双解大词典的内容比较偏爱,所以我就截取了他的释义和例句。 #!/bin/bash ARGS=1 E_BADARGS=65 TEM_FILE="/tmp/dict.tmp" if [ $# -ne "$ARGS" ] then echo "Usage:`basename $0` word" exit $E_BADARGS fi # 抓取页面,删除html 代码,空行等,只留下想要的内容 curl -s 'http://dict.youdao.com/search?q='$1'' | awk 'BEGIN{j=0;i=0;} {if(/phrsListTab/){i++;} if(i==1){print $0; if(/<\/ul>/){i=0;}} if(/collinsToggle/){ j++;} if(j==1) {print $0; if(/<\/ul>/){j=0;}}}' | sed 's/<[^>]*>//g' | sed 's/ //g'| sed 's/→//g' | sed 's/^\s*//g' | sed '/^$/d'> $TEM_FILE # 处理输出 is_head=true # 当前行是否属于“头部” head="" # 头部内容 body="" # 主体内容 ln_item=0 # 每一条解释的行号 ln_eg=0 # 例句行号 while read line do let ln_item++ let ln_eg++ num_flag=`echo "$line" | awk '/[0-9]+\.$/'` if [ "$num_flag" != "" ]; then ## 遇见'数字+点'开头的行 is_head=false # 第一次遇见数字行 将头部标示设置为false ln_item=0 fi eg_flag=`echo "$line" | awk '/例:$/'` # 遇见'例:'开头的行 if [ "$eg_flag" != "" ]; then ln_eg=0 fi if $is_head ; then head="$head $line" else if [ $ln_item == 0 ] ; then line="\033[32;1m\n\n$line\033[0m" # 释义编号 elif [ $ln_item == 1 ] ; then line="\033[32;1m[$line]\033[0m" # 词性 elif [ $ln_item == 2 ] ; then line="\033[1m$line\033[0m" # 释义 elif [ $ln_eg == 0 ] ; then line="\033[32;1m\n $line\033[0m" # 例: elif [ $ln_eg == 1 ]; then line="\033[33m$line\033[0m" # 例句 elif [ $ln_eg == 2 ]; then line="\033[33m$line\033[0m" # 例句释义 fi body="$body $line" fi done < $TEM_FILE echo -e "\033[31;1m$head\033[0m $body" exit 0 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.