运行平台: Windows
Python版本: Python3.6
IDE: PyCharm
其他工具:Chrome浏览器
作为一个程序员,会经常查阅一些技术文档和技术 站,很多都是英文的,遇到不认识的词就要查,词典的使用频率也颇高,既然是程序员,高逼格的方式当然是做一个词典,此为动机。
我寻找一个好的词典的标准是:解释到位、数据抓取方便。
几个候选词典有:百度翻译、金山词霸、有道翻译、谷歌翻译。
最终选定金山词霸作为词源,原因:
大学时就使用金山词霸;
url比较简单。
2.数据抓取
2.1 寻找URL
打开金山词霸在线翻译首页http://www.iciba.com/,输入一个单词进行查询,此处以“call”为例,查询页面出来以后看URL,浏览器的地址栏内容为http://www.iciba.com/call 。猜想查询URL格式为http://www.iciba.com/后面跟上要查询的单词(或词语),将call改为其他单词果然跳出相应的查询页面,中文也一样,由此可以证明以上猜想,也可以看出查询的URL真的简单明了。
2.2 寻找数据
我只是想弄懂单词的意思,所以我需要的数据是如图所示部分:
查找区域
确定好了数据区域是< ul class=”base-list switch_part”>和< /ul>中间的部分,接下来就把这些数据都抓取下来吧。
2.3 抓取数据
抓取数据用到了urllib.request库,解析html用到了BeautifulSoup库。所以首先导入这两个库。
import urllib.request
from bs4 import BeautifulSoup
需要将整个 页内容抓取下来,用如下代码实现:
root_url = ‘http://www.iciba.com/’
word = input(‘请输入想要查询的单词(或”q”退出):n’)
url = root_url + word # 拼接URL
response = urllib.request.urlopen(url)
html = response.read()
有了html内容,接下来要把 base-list switch_part 标签里的内容读取出来,BeautifulSoup里的find可以实现此功能:
soup = BeautifulSoup(html, ‘lxml’)
tag_soup = soup.find(class_=’base-list switch_part’)
print(tag_soup)
获得输出结果为:
v.
呼唤,喊叫;
召唤,叫来,召集;
下令,命令;
打电话给
,
n.
喊叫,大声喊;
电话联络;
必要,理由;
要求
可以看出里面包含了两个< li class=”clearfix”>< /li>,这表明call这个单词有两个词性,接下来就要解析出所有的词性,用到BeautifulSoup的find_all函数:
meanings = tag_soup.find_all(class_=’clearfix’)
for i in range(len(meanings)):
translation = meanings[i].get_text() # 获取文本内容
print(translation.strip()) # 去掉字符串开头和结尾的空行
print(‘=’*30) # 华丽的分割线
最后输出结果如图所示,这已经是我想要的结果了。
查询中文成功
3.2 查询不存在的单词
如果查询不存在的单词结果会如何:
整体展示
至此,一个简单的词典就完成了。
4. 如何使用
4.1 直接运行py文件
如果你已经开发完此词典说明你电脑里已经有python环境了,那么可以直接运行py文件。
我已经将py文件的打开应用设置为python.exe了,所以可以直接双击运行。
打开cmd,进入该py文件目录,执行python dict.py即可运行。
4.2 打包
如果要给别人使用,那么打包成exe就是个完美的解决方案了。打包用到了pyinstaller第三方库,执行pip install pyinstaller进行安装。此处打包用到了pyinstaller的两个参数:
参数
含义
-F
指定打包后只生成一个exe格式的文件
-i
改变生成程序的icon图标
到 上去下载一个ico文件作为改程序的图标(程序员也是要美感的),推荐一个icon下载 站http://www.easyicon.net/ 。打开CMD,进入到dict.py所在文件夹执行如下指令:
pyinstaller -F -i Dictionary.ico dict.py
在dist目录下就可以看到生成的exe了。把dict.exe放到某个目录下,将快捷方式放到桌面,或者将该目录放到系统环境变量中,在cmd下直接敲dict.exe就能运行了,酷!
欣赏一下最终效果:
交流群

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫urllib208940 人正在系统学习中 相关资源:下拉通刷词软件v3.1.zip-其它代码类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!