基于网络爬虫技术的中英互译系统研究

2021-11-05 08:03李信然孙洪波梅良才
电子技术与软件工程 2021年17期
关键词:窗体爬虫助手

李信然 孙洪波 梅良才

(北京理工大学珠海学院 广东省珠海市 519088)

1 任务描述

计算机网络的飞快发展使得各个领域所需求的人才也各色各样。而在现在的开放时代,英文也成为我们生活的一部分,我们在很多情况下都避免不了接触英文单词和句子,中英互译助手便是服务于这样的各种想学英文和在学英文的人群,随时随地任意的中英互译在很多层面提高了用户的工作效率也扩大了用户的词汇量。

本文主要从以下三个任务来设计中英互译助手:

(1)设计中英互译助手的窗体规格,个性化整体的布局和背景字体以及设计好各个菜单项和安排好窗体按钮及文本框的位置大小。

(2)登录360 翻译网址,利用python 爬虫爬取网页源代码中与中英互译助手相关的数据内容并进行封装。

(3)调用函数将按钮功能与爬虫爬取结果进行结合绑定,同样调用函数设置各个菜单项的实现结果,将其与对应内容绑定。最后将代码进行打包成一个程序。

2 解决思路

2.1 包的安装与描述

任务一要求个性化设计窗体,需要导入wxPython 工具包,wxPython 是Python 语言的一套优秀的GUI 图形库,允许Python 程序员很方便的创建完整的、功能健全的GUI 用户界面。wxPython可以直接通过在Windows 系统下的cmd 命令下输入pip install-U wxPython 进行下载安装,在wxPython 的官方网址:http://wxpython.org 中可以查阅到wx.Frame 框架和其各个控件的使用方法。

任务二Python 爬虫爬取网页数据时需要用到urllib、urllib3 和requests 这三种常见模块实现HTTP 网络请求,这里我们使用的是requests 模块。Requests 模块可以直接使用pip install requests 进行安装。Requests 常见的功能特性有自动内容解码、自动解压、HTTP 代理支持、连接超时、分块请求等。爬虫爬取网页源代码时需要对数据进行解析,这时我们可以使用json 常见组件中的json.cn 对我们需要的response 内容进行在线解析以便我们爬取数据。

2.2 任务一的解决过程

设计窗体先用wx.Frame 框架构建一个整体,大小尺寸设为650,450;用wx.StaticText 文本类控件将大标题设置为Translation Helper,另设副标题为—By Ivonne 以及输入内容文本和输出结果文本;用wx.TextCrl 文本框控件设置与输入文本和输出文本相对应的文本框;使用time 模块自动更新当天日期并用SetValue 获取时间输出;wx.Button 用于设置“翻译”“清除”按钮,wxPython 的控件均可用pos 参数调整其位置。

核心代码:

窗体的个性化处理是影响用户体验最必不可少的部分。直接设计窗体的背景颜色可以用panel.SetBackgroundColour(),括号内填上喜欢的颜色的英文或十六进制颜色编码,同样以xx.SetBackgroundColour()可以设置按钮的颜色;文本和按钮的字体的大小和样式使用wx.Font()进行设计;wxPython 中BoxSizer 布局是在一条水平线和垂直线上的窗口部件的布局,当尺寸改变时,控制窗口部件的行为十分灵活,可用于任何类型的布局。由此我们可以使用一个BoxSizer 布局设置添加横纵向容器,使得当窗口最大化时和还原时部件位置仍处于中心处。

窗体设计中wxPython 有菜单控件用于设计菜单。创建一个菜单栏用menuBar=wx.MenuBar(),接着创建菜单用menu=wx.Menu(),分别用menu.Append()将创建的四个菜单项 ‘新建’、‘历史记录’、‘关于’、‘退出’添加到菜单栏中;绑定各个事件处理用self.Bind(),用menu.AppendSeparator()在菜单项之间添加分割线,用参数text=“名称/t 快捷键”进行快捷键的注册,最后设置窗口框架的菜单栏为menuBar 用self.SetMenuBar(menuBar)。

2.3 任务二的解决过程

Python 爬虫爬取360 翻译网页时先登录官方网址:http://fanyi.so.com/#。在输入框随意输入某个词,接着查询其网页源代码,查询到网站的url 为https://fanyi.so.com/index/search 后复制headers 设置请求头进行伪装访问。

请求头示意图:

将response 部分的数据复制到json.cn 组件上进行解析便可获得输入内容和翻译结果在网页源代码上的位置标签为‘data’‘fanyi’。

由标签所在位置进行条件判断,判断输入框输入内容为中文还是英文,实现程序中译英和英译中的功能。

核心代码:

2.4 任务三的解决过程

将‘翻译’按钮与360 翻译网页爬取的数据进行事件绑定用self.bt_translate.Bind()这一控件,调用函数将两者结合,用self.text_result.SetValue()将输出内容保存在文本框中,实现点击翻译按钮则在输出框中出现翻译结果;绑定‘清除’按钮实现点击清除按钮后输入内容和输出框内容全部清空;其中判断并提示输入内容是否为空采用wx.MessageBox()控件实现。

如图1所示,调用函数将各个菜单项与其相对应的结果进行事件处理绑定。用xxx.SetValue()实现点击新建菜单项则输入框、输出框、日期全部清除的功能;使用wx.MessageBox()将查询日期、查询内容和翻译结果进行存储,实现点击历史记录菜单项时弹出刚刚查询到的内容,有助于操作失误或临时忘记内容的用户进行查询;同样用wx.MessageBox()实现点击关于菜单项弹出有关用户使用这款翻译助手的说明;用self.Close()实现点击退出菜单项则退出翻译助手的使用。

图1

核心代码:

这款中英互译软件适用在各个领域的人们,随时随地的中英互译为人们日常生活提供了一定程度的便利。这次的翻译助手以简约浅蓝色为基调,支持单一词语或多个词组的翻译,只要输入内容便可以实时进行翻译,在另一方面,无形中丰富了国民的词汇存储量。

3 报告总结与评价

这款中英互译助手在翻译功能方面能正常实现中译英和英译中,菜单栏的历史记录可以帮助用户找到自己需要的寻找的内容,避免了因为手滑和操作失误等原因而重新开始的漏洞,新建翻译内容时将时间一起清除可以让用户自行创建自己登录翻译助手的历史记录时间,使用说明能帮助用户尽量避免在使用过程中用不适当的方法导致查询不到自己想要的结果。

猜你喜欢
窗体爬虫助手
利用网络爬虫技术验证房地产灰犀牛之说
基于Python的网络爬虫和反爬虫技术研究
试谈Access 2007数据库在林业档案管理中的应用
利用爬虫技术的Geo-Gnutel la VANET流量采集
大数据环境下基于python的网络爬虫技术
小助手
灵感助手表彰大会(二)
灵感助手表彰大会(一)
巧设WPS窗体控件让表格填写更规范
WinCE.net下图形用户界面的开发