python制作英语字典_Python爬虫之自制英汉字典
最近在微信公众号中看到有人用Python做了一个爬虫,可以将输入的英语单词翻译成中文,或者把中文词语翻译成英语单词。笔者看到了,觉得还蛮有意思的,因此,决定自己也写一个玩玩~~
首先我们的爬虫要能将英语单词翻译成中文,因此,我们就需要一个网站帮助我们做这件事情。于是,我们选定有道词典,网址为: http://dict.youdao.com/ 。在该网页中我们输入单词nice,就会出来这个单词的意思,如下图:
![有道词典](https://img-blog.csdn.net/20180524133211564?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2pjbGlhbjkx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
针对上述过程,对于熟悉爬虫的读者来说,是不难完成将输入的单词的中文意思从网页中提取出来的。笔者的代码如下:
```
import requests
from bs4 import BeautifulSoup
get word from Command line
word = input("Enter a word (enter 'q' to exit): ")
main body
while word != 'q': # 'q' to exit
try:
# 利用GET获取输入单词的网页信息
r = requests.get(url='http://dict.youdao.com/w/%s/#keyfrom=dict2.top'%word)
# 利用BeautifulSoup将获取到的文本解析成HTML
soup = BeautifulSoup(r.text, "lxml")
# 获取字典的标签内容
s = soup.find(class_='trans-container')('ul')0
# 输出字典的具体内容
for item in s:
if item.text:
print(item.text)
print('='*40+'\n')
except Exception:
print("Sorry, there is a error!\n")
finally:
word = input( "Enter a word (enter 'q' to exit): ")
运行上述Python代码,结果如下:
![简单功能的实现](https://img-blog.csdn.net/20180524133923597?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2pjbGlhbjkx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
上述过程无疑是简单的,下面,我们增加一些新的功能,如下:
1. 将Python代码打包成exe文件;
2. 在CMD中输出单词的中文意思时,输出为彩色文字。
利用ctypes模块,我们可以对Windows系统进行简单操作,而利用pyinstaller模块,我们可以将自己的Python代码打包成exe文件。
改修的Python代码如下:
import requests
from bs4 import BeautifulSoup
import random
import ctypes
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE = -11
STD_ERROR_HANDLE = -12
FOREGROUND_DARKBLUE = 0x01 # 暗蓝色
FOREGROUND_DARKGREEN = 0x02 # 暗绿色
FOREGROUND_DARKSKYBLUE = 0x03 # 暗天蓝色
FOREGROUND_DARKRED = 0x04 # 暗红色
FOREGROUND_DARKPINK = 0x05 # 暗粉红色
FOREGROUND_DARKYELLOW = 0x06 # 暗黄色
FOREGROUND_DARKWHITE = 0x07 # 暗白色
FOREGROUND_DARKGRAY = 0x08 # 暗灰色
FOREGROUND_BLUE = 0x09 # 蓝色
FOREGROUND_GREEN = 0x0a # 绿色
FOREGROUND_SKYBLUE = 0x0b # 天蓝色
FOREGROUND_RED = 0x0c # 红色
FOREGROUND_PINK = 0x0d # 粉红色
FOREGROUND_YELLOW = 0x0e # 黄色
FOREGROUND_WHITE = 0x0f # 白色
std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
设置文字颜色
def set_cmd_text_color(color, handle=std_out_handle):
Bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
return Bool
重置文字颜色为白色
def resetColor():
set_cmd_text_color(FOREGROUND_DARKWHITE)
以指定颜色输出文字
def cprint(mess, color):
color_dict = {'暗蓝色': FOREGROUND_DARKBLUE,
'暗绿色': FOREGROUND_DARKGREEN,
'暗天蓝色': FOREGROUND_DARKSKYBLUE,
'暗红色': FOREGROUND_DARKRED,
'暗粉红色': FOREGROUND_DARKPINK,
'暗黄色': FOREGROUND_DARKYELLOW,
'暗白色': FOREGROUND_DARKWHITE,
'暗灰色': FOREGROUND_DARKGRAY,
'蓝色': FOREGROUND_BLUE,
'绿色': FOREGROUND_GREEN,
'天蓝色': FOREGROUND_SKYBLUE,
'红色': FOREGROUND_RED,
'粉红色': FOREGROUND_PINK,
'黄色': FOREGROUND_YELLOW,
'白色': FOREGROUND_WHITE
}
set_cmd_text_color(color_dict[color])
print(mess)
resetColor()
颜色列表
color_list = ['暗蓝色','暗绿色','暗天蓝色','暗红色','暗粉红色','暗黄色','暗白色','暗灰色',
'蓝色','绿色','天蓝色','红色','粉红色','黄色','白色']
print information of this application
print('#'60)
print('This app is used for translating English word to Chineses!')
print('#'60+'\n')
get word from Command line
word = input("Enter a word (enter 'q' to exit): ")
main body
while word != 'q': # 'q' to exit
try:
# 利用GET获取输入单词的网页信息
r = requests.get(url='http://dict.youdao.com/w/%s/#keyfrom=dict2.top'%word)
# 利用BeautifulSoup将获取到的文本解析成HTML
soup = BeautifulSoup(r.text, "lxml")
# 获取字典的标签内容
s = soup.find(class_='trans-container')('ul')0
# 随机选择输出的颜色
random.shuffle(color_list)
# 输出字典的具体内容
for item in s:
if item.text:
cprint(item.text, color_list[0])
print('='*40+'\n')
except Exception:
print("Sorry, there is a error!\n")
finally:
word = input( "Enter a word (enter 'q' to exit): ")
利用pyinstaller模块,将上述程序打包为exe文件。比如我们刚才的Python代码的文件名为English_2_Chinese_dict.py,位于E盘下的eng_2_chn文件夹下,我们可以在CMD中先切换到E盘下eng_2_chn文件夹,再输入以下命令:
pyinstaller -F English_2_Chinese_dict.py
这样就会生成一些文件,如下图:
![生成exe文件](https://img-blog.csdn.net/20180524134721286?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2pjbGlhbjkx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
我们想要的生成的exe文件位于dist文件夹下,运行该exe文件,并测试,如下:
![exe文件测试](https://img-blog.csdn.net/20180524134940233?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2pjbGlhbjkx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
这样我们也就实现了上述新增的功能,能够更加方便地运行我们的程序。怎么样,是不是觉得Python爬虫酷酷的?不知作为新手的你,有没有一点心动呢?赶紧学起来吧,哈哈~~
本次分享到此结束,如有任何问题,请在下面评论哦~~
注意:本人现已开通两个微信公众号: 因为Python(微信号为:python_math)以及轻松学会Python爬虫(微信号为:easy_web_scrape), 欢迎大家关注哦~~
python制作英语字典_Python爬虫之自制英汉字典相关推荐
- python制作英语小词典_Python爬虫之自制英汉字典
最近在微信公众号中看到有人用Python做了一个爬虫,可以将输入的英语单词翻译成中文,或者把中文词语翻译成英语单词.笔者看到了,觉得还蛮有意思的,因此,决定自己也写一个玩玩~~ 首先我们的爬虫要能将英 ...
- 英汉小字典java_java 学习案例之英汉字典
在写代码的时候,当鼠标悬浮在某一个单词上面的时候,有道词典点有时会弹出一个消息气泡,在里面中给出关于这个单词相关的解释,下面给大家展示一个使用Java基础语言编写的英汉字典案例: 实现功能: 输入英文 ...
- 英汉字典程序C语言,电子英汉字典_c语言版.doc
PAGE PAGE 5 课程设计报告 课 题: 电子英汉字典 学 院: 电子工程与自动化 专 业: 测控技术与仪器 学生姓名: XXX 学 号: XXXXXXXXXXX 指导老师 : 陈 寿 宏 20 ...
- python简易英文字典_Python爬虫:自制简易词典
运行平台: Windows Python版本: Python3.6 IDE: PyCharm 其他工具:Chrome浏览器作为一个程序员,会经常查阅一些技术文档和技术网站,很多都是英文的,遇到不认识的 ...
- python制作词典软件_Python爬虫之二:自制简易词典
运行平台: Windows Python版本: Python3.6 IDE: PyCharm 其他工具:Chrome浏览器 作为一个程序员,会经常查阅一些技术文档和技术网站,很多都是英文的,遇到不认识 ...
- python制作窗口界面_python爬虫如何制作可视化界面?(pyqt5环境配置篇)
却道天凉好个秋~ pyqt5+python+qtdesigner+pycharm制作一个可视化的GUI爬虫工具 前言: 最近闲来无聊又开始了py之路,这次需要的是制作一个贴吧的关键词搜索相关帖子的工具 ...
- python制作英汉词典_Python基于有道实现英汉字典功能
本文实例讲述了Python基于有道实现英汉字典功能的方法.分享给大家供大家参考.具体如下: import re,urllib aa="http://dict.youdao.com/searc ...
- python英语翻译-python制作英语翻译小工具代码实例
这篇文章主要介绍了python制作英语翻译小工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用python爬虫可以制作英语翻译小工具.来 ...
- python有道字典_Python基于有道实现英汉字典功能
本文实例讲述了Python基于有道实现英汉字典功能的方法.分享给大家供大家参考.具体如下: import re,urllib aa="http://dict.youdao.com/searc ...
最新文章
- Python(2.7.6) 列表推导式
- Altium designer中导入CAD文件
- int 互换 java_Java基础中Int类型变量值互换的几种方法
- SAP Spartacus B2B 页面信息提示图标的弹出窗口显示实现逻辑
- 【渝粤题库】国家开放大学2021春1373特殊教育概论题目
- [转载]我的PMP复习备考经验谈(下篇)——一本关于PMP备考的小指南
- vb 获取系统声音的电平_质量好的背景音乐系统套装效果图
- python元祖组成字典_Python之旅第四天(列表、元祖、字典和习题)
- ZABBIX Agent2监控docker
- BGP邻居建立及路由传递/解决BGP数据层面路由黑洞实验
- 看了星球大战--西斯的复仇
- 亚马逊美国站店铺fbm自发货流程是什么?亚马逊美国站店铺fbm如何做起来?
- win10系统问题记录(一):解决D/E盘根目录出现的msdia80.dll文件
- 华为员工待遇全面揭秘
- CSS3实现渐变背景
- mp4转换gif格式,免费在线转换
- 第7章 面向对象技术
- 微信小程序配置每个页面的标题名称
- 不是内部或外部命令,也不是可运行的程序或批处理文件。
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第44讲:PHP程序设计中的COOKIE
热门文章
- 数据分析师年薪50w起 人才缺口极大
- mapbox制作动态地图——storytelling(附html代码)
- 视频号的发布技巧,视频号打造受欢迎的内容:国仁楠哥
- 显卡那些GS、GT的名称是什么意思?
- android系统模拟麦克风,在Android模拟器中使用麦克风(Java Android初学者)
- 定制 kali nethunter内核 (官方不支持的手机)
- 7-2 计算Fibonacci数列的前N(N<=20)项 (10 分)
- 详解主流浏览器多进程架构:Chrome、IE
- 一文读懂eBPF/XDP
- 微信商家收款码怎么申请,3分钟快速开通低费率商户方法