Get Word Definition from dict.youda.com

via Perl Script

获取基本释义

Get Basic Definition

http://dict.youdao.com/fsearch?q=abstain&doctype=json&xmlVersion=3.2&Version=1.2

  • ** q ** 要查的单词或词组
  • 只能返回xml格式的,xmlVersion不同会有不同

或者使用
linux命令行下翻译工具

但是没有网页版获取的全

所以那就提取页面文字呗

#!/usr/bin/perluse utf8;
use v5.18.2;
binmode STDOUT, 'utf8';
binmode STDERR, 'utf8';use Web::Query;
use HTML::Entities;
my $ok;
my $saveDir = '/Users/ruili/Code/Perl5/word';
my $word = $ARGV[0];
if ( -f "$saveDir/".$ARGV[0] && ! -z "$saveDir/".$ARGV[0] ) {#如果文件不为空say "$ARGV[0]已经存在了";exit;
}
open OUT, ">$saveDir/".$ARGV[0] or die "Write out Die\n";
binmode OUT, 'utf8';my $desc = wq("http://dict.youdao.com/w/eng/".$word."/#keyfrom=dict2.index");# 是否有柯林斯解释
my $ok = ${$desc->find("#collinsResult")->{trees}}[0];
if (! $ok){#没有柯林斯say STDERR "没有柯林斯词典";
}else{# 获取柯林斯解释say OUT "\n##########柯林斯英汉词典##########\n";my $collinsDesc = $desc->find('#collinsResult')->find('.ol');$collinsDesc->find('.collinsMajorTrans')->each(sub{my ($i,$elem) = @_;$elem = $elem->html();$elem =~ s|</?[^<>]+>||g;$elem =~ s|\n||g;say OUT "$elem";});$collinsDesc->find('.exampleLists')->each(sub{my ($i,$elem) = @_;$i++;$elem = $elem->html();$elem =~ s|</?[^<>]+>||g;$elem =~ s|\n||g;say OUT decode_entities($elem);});say STDERR "柯林斯英汉词典 OK";
}# 是否有21世纪解释
$ok = ${$desc->find("#authDictTrans")->{trees}}[0];
if (! $ok){#没有这个元素say STDERR "没有21世纪大英汉词典";
}else{# 获取21世纪大英汉词典say OUT "\n##########21世纪大英汉词典##########\n";my $enzh21 = $desc->find("#authDictTrans");my $ol = $enzh21->find('.ol.wordGroup');$ok = ${$ol->{trees}}[0];if(!$ok){say STDERR "没有";}else{$enzh21->find('.ol.wordGroup .wordGroup')->each(sub{my ($i,$elem) = @_;$elem = $elem->html();$elem =~ s|</[a-zA-Z]+>|\n|g;$elem =~ s|</?[^<>]+>||g;$elem =~ s|\n{2,}|\n|g;say OUT decode_entities("$i: $elem");});say STDERR "21世纪大英汉词典 OK";}$enzh21->find('ul .wordGroup')->each(sub {my ($i,$elem) = @_;$elem = $elem->html();$elem =~ s|</[a-zA-Z]+>|\n|g;$elem =~ s|</?[^<>]+>||g;$elem =~ s|\n{2,}|\n|g;say OUT decode_entities("$i: $elem");});
}# 是否有网络解释
$ok = ${$desc->find("#tWebTrans")->{trees}}[0];
if (! $ok){#没有这个元素say STDERR "没有网络释义";
}else{say STDERR "网络释义 OK";say OUT "\n##########网络释义##########";#有词条my $web = $desc->find("#tWebTrans");$web->find(".wt-container .title")->each(sub {my ($i,$elem) = @_;$elem = $elem->html();$elem =~ s|</?[^<>]+>||g;$elem =~ s|\n{2,}|\n|g;$i++;say OUT decode_entities("$i: $elem");});#短语say OUT "\n###短语###";$web->find("#webPhrase .wordGroup")->each(sub {my ($i,$elem) = @_;$elem = $elem->html();$elem =~ s|</?[^<>]+>||g;$elem =~ s|\n{2,}|\n|g;$i++;say OUT decode_entities("$i: $elem");});
}

效果


##########柯林斯英汉词典##########1. ADJ Someone who is abstemious avoids doing too much of something enjoyable such as eating or drinking. 有节制的 [正式]##########21世纪大英汉词典##########0: (尤指在饮食方面)(人)有度的,有节制的,适度的1: (生活等)以节制为特点的2: (饮食等)简单而有节制的;节俭的,节省的0: adj.
(尤指在饮食方面)(人)有度的,有节制的,适度的
(生活等)以节制为特点的
(饮食等)简单而有节制的;节俭的,节省的1: adj.
2: (尤指在饮食方面)(人)有度的,有节制的,适度的
(生活等)以节制为特点的
(饮食等)简单而有节制的;节俭的,节省的3: (尤指在饮食方面)(人)有度的,有节制的,适度的4: (生活等)以节制为特点的5: (饮食等)简单而有节制的;节俭的,节省的##########网络释义##########
1:    有节制的
2:    节俭的
3:    节制的
4:    节约的###短语###
1: abstemious a 有节制的
2: abstemious area 温带
3: abstemious society 节约型社会
4: abstemious meals 适度的吃
5: abstemious style 节约型
6: abstemious habits 节制饮食的习惯
7: building abstemious society 构建节约型社会
8: an abstemious diet 节俭的饮食 ; 饮食有度
9: be abstemious in drinking 节制饮酒 

转载于:https://www.cnblogs.com/raybiolee/p/5641612.html

使用Perl5获取有道词典释义相关推荐

  1. 获取有道词典在线翻译结果 及 Windows下配置运行ASP

    <% '说明:该程序用于远程调用有道翻译接口中译英,http://fanyi.youdao.com/openapi.do?keyfrom=localhost&key=1204607085 ...

  2. 必应词典手机版(IOS版)与有道词典(IOS版)之软件分析【功能篇】【用户体验篇】...

    1.序言: 随着手机功能的不断更新和推广,手机应用市场的竞争变得愈发激烈.这次我们选择必应词典和有道词典的苹果客户端作对比,进一步分析这两款词典的客户端在功能和用户体验方面的利弊.这次测评的主要评测人 ...

  3. Python3 网易有道词典结合PyInstaller,tkinter制作一个简单的中英文翻译exe文件

    这是自己的一个小想法,但是最后还是经过2天的瞎鼓捣实验成果了.虽然界面很丑,但是我很喜欢它,因为有Dos黑窗口,少去了安装步骤,更多的是少去了广告,基于有道翻译里面的api接口,所以我不怕翻译的不准确 ...

  4. python利用有道词典翻译_使用Python从有道词典网页获取单词翻译

    从有道词典网页获取某单词的中文解释. import re import urllib word=raw_input('input a word\n') url='http://dict.youdao. ...

  5. 有道精品课python-Python:7行代码爬取有道词典

    家长体验分享现在英语培训机构有很多的,选择一家适合自己或孩子的英语培训机构,还是有点困难的,但是知名的也不多,abc360.兰迪英语.沪江英语.vipkid.华尔街英语等,这些机构的实力都差不多,区别 ...

  6. 在线教育这条取经路,有道词典何时能修成正果?

    词典是学习语言的重要工具.在科技欠发达的时候,词典只有纸质版.而因为词典本身内容很多,所以词典被装订成册后又厚又重,携带特别不方便.再后来出现了电子词典,当时由于电子词典的便携性使其一时间成为大家喜爱 ...

  7. 最专注和高效的查词法?网易有道词典笔2.0评测

    学英语最难的就是词汇关了.从厚厚的英汉词典到手机查词,似乎都不是学习词汇的最佳方式.当我们在查词的时候,我们需要什么?答案是专注和效率.今天我们为大家带来一款网易有道词典笔 2.0,可以帮助大家快速翻 ...

  8. Android进阶2之有道词典开发

    本博文只是实现有道词典的功能,并着重界面. 首先,你需要获取有道开发平台的API key.点击打开链接 申请一个吧. 利用数据接口获取数据: http://fanyi.youdao.com/opena ...

  9. python有道字典_Java和Python使用有道词典制作查单词脚本

    先上两张图看一下效果 Java的: 今天突发奇想,想做个查单词的东西,就赶紧去有道词典官网看了一下,原来我们要查询的单词是嵌入在网页地址中送给有道词典的,然后页面的结果就是我们需要的单词释义,所以这个 ...

  10. 有道词典官方下载【词典相关的服务与软件】

    有道词典官方下载 有道词典免费下载 软件大小: MB 软件语言:简体中文 软件性质:应用软件 软件授权:免费共享软件 软件等级:2 更新时间:2013-03-08 11:45:53 应用平台:wind ...

最新文章

  1. python爬虫如何配置动态爬虫代理
  2. 【译】微软出品HashiCorp Terraform 和 Vault 系列视频
  3. 制作新版STC单片机WiFi下载器
  4. 利用cx_Freeze将py文件打包成exe文件(图文全解)
  5. centos6.4 安装 mysql_CentOS6.4 安装MySQL
  6. angular判断两个对象值是否相等,包含对象深层判断,深拷贝的两个对象
  7. c# windows服务状态、启动和停止服务
  8. EsayExcel简单的读和写
  9. PHP如何关闭notice级别的错误提示
  10. 3.1.3、控制结构
  11. ActiveMQ入门系列三:发布/订阅模式
  12. 微信小程序原生实现好看的日期选择插件-万年历
  13. sqlserver中能用when_sqlserver中casewhen用法小结
  14. Mac下最好用的离线词典-欧陆词典破解版
  15. dos命令以及制作.bat文件
  16. 微信小程序开发——获取APPID
  17. STM32CUDE-STM32F407学习笔记2-按键操作
  18. 低配置享受3D立体游戏 手把手教你设置
  19. 常见编码格式(中文编码)
  20. 人类第一位女教授的传奇一生

热门文章

  1. Excel VBA视频教程20集+PPT课件 完整版
  2. Android9能用的flash播放器,安卓flash播放器源码支持android9
  3. ubuntu系统设置右键新建文本文档
  4. java反编译工具jd-gui下载与使用
  5. 计算机二级资料汇总,包含多个题库
  6. 计算机网络同传步骤,HP网络同传使用方法Word版
  7. matlab线性代数电子书,实用大众线性代数 MATLAB版_13652907.pdf
  8. Kotlin Compose 标准组件
  9. Python3通过Everything SDK访问本地文件
  10. java 10000阶乘_java大数阶乘优化