APP下载

基于Python爬虫的英汉互译项目的设计与实现

2021-12-06罗晓东

科学与生活 2021年24期
关键词:爬虫

罗晓东

摘语:爬虫是能够自动爬取网页中许多种类数据的一种程序。爬虫一般是利用网页的URL来查找网页内容,然后直接返回给用户所需要的数据,不需要人工操作浏览器获取。爬虫是搜索引擎的一个重要组成部分,帮搜索引擎爬取互联网中的重要数据。爬虫程序核心是对网页进行解析,从中提取出自己想要的信息数据。

关键词:Python、爬虫、英汉互译

英汉互译在生活中也是特别重要的一个问题,像是平时大家在学习或者浏览一个英文的网页,会经常遇到不认识的英文单词。有时候一个单词会让我们很难去理解一句话的意思,这时候我就就不得已去查英汉字典,可是查字典又费时费力。在这里就引出了本文的重要例题----英汉互译。我可以在这里运用Python做一个英汉互译的项目来准确实时的对英语进行翻译。或许我们在跟外国人交流的时候还有很多中文单词我们不能翻译成英文。还有我们不仅可以去翻译单个单词,当然也可以翻译一段话。该文章详细介绍了如何运用Python爬虫抓取网站。

随着互联网时代迅猛发展,网络已成为大数据信息的载体,如何能从网络里有效地提取并利用这些信息就是一个富有挑战的难题。用户网络检索信息通常用的方法便是搜索引擎,但是具有一定的局限性,比如说,不同期望的用户往往具有不同的检索目的和需求,而普遍的搜索引擎它返回的内容往往包含很多用户不需要的东西。若要实时监测网络新闻的发展与变化,则必须使用相关工具,人工的速度太慢,这时候网络爬虫就应运而生了。

利用C++和Java進行爬虫的程序代码,C++代码复杂性高,而且可读性、可理解性较低,不易上手,一般比较适合资深程序员编 写,来加深对C++语言的理解,不合适初学者学习。Java的可读性适中,可是代码冗余较多,相同的一个爬虫,Java的代码量大概会是Python的两倍。Python作为一种语法简练,其便捷性、简单上手性令众多程序员喜欢,当然Python也跟其他大多数程序语言一样也具有面向对象的编程。本文主要介绍如何利用Python进行网站数据的抓取工作,然后加以利用使其成为一个英汉互译的工具。

在安装Python的基础上,运用编辑器PyCharm对代码进行一系列的编辑。PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。我们可以导入别人写好的库,非常的方便简洁。

设计网络爬虫翻译系统要解决的以下几个问题:

窗口的初始化、输出,文本框、按钮等标签控件的使用。

网页的分析,运用pip第三方库的导入。

请求头——模拟浏览器去请求服务器,反反爬虫的运用。

运用URL中有道词典对输入的关键字进行翻译,然后运用爬虫获取翻译之后的返回值。

系统结构逻辑上由四个部分组成:第一个部分是窗口模块,负责窗口、输入框标签和按钮的搭建;第二个部分是按钮功能实现模块,将窗口模块中的按钮实现具体的功能;第三个部分负责爬取后网页数据的处理与分析;第四层是数据展示模块,负责将分析整理后的数据以文本的形式在翻译之后的文本框内显示出来。

1.窗口模块

设计这个项目的时候首先来创建一个窗口,然后在窗口中添加文本框、输入框和按钮。当我们添个各个组件的时候并未显示,在Python中叫做未实例化,所以可以通过root.maimloop()来显示窗口. 当我们在设计窗口时,我们可以先给它一个标题。然后发现它的初始化都是在电脑的左上角,而且大小还是初始的大小,为了利于输入时的内容看得见,现在需要对窗口的大小和位置进行调整。在这里我们用到了title()以及geometry().窗口创建完后先开始添加标签控件,创建好了但是没有显示,因为在tkinter中标签控件需要进行定位,确定标签控件在窗口中的具体位置。在这里直接用label.grid()就可以显示。在这里我们运用了表格式布局。同理根据标签控件的定位方法,可以对输入框进行定位。在这里出现了一个问题,因为这个窗口是表格式布局,所以在实现输入框实例化的时候其实它跟我们的要求有一定的差距。当然我们为了美观,可以对输入框和标签控件进行布局整理。输入框和标签控件还需要加上坐标,然后设置输入框内所输入的字体跟字号,在这里我们选择适合的大小,大小选择380x100就可以,位置可以根据屏幕的大小进行具体的调整,在这里我选用530+300。然后加上“翻译后的结果:”的标签。同理我们可以在grid()中通过row和column来确定具体的行和列。在这里我们还需要两个按钮来做点击事件,一个是“翻译”按钮,点击就可以对输入框内的内容进行翻译;另外一个就是“退出”按钮,点击此按钮窗口进行关闭,任务结束。button.grid()里对齐方式运用sticky = W、E、N、S分别表示左对齐、右对齐、上对齐、下对齐。在这里我们对“翻译”按钮运用左对齐,对“退出”按钮运用右对齐。

2.按钮功能实现模块

首先简单地介绍下Tkinter的概念,Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中Tkinter 按钮组件用于在Python应用程序中添加按钮,按钮上可以放上文本或图像,按钮可用于监听用户行为,能够与一个 Python 函数关联,当按钮被按下时,自动调用该函数。

3.爬虫分析模块

爬虫分析的设计思路:爬取的网站地址,获取对应页面,提取有用数据并将数据显示在我们要他现在是的文本框内。接下来就是对爬虫一步一步的实现功能。

首先我们要爬取的URL地址是http://fanyi.youdao.com/,我们可以先用浏览器打开有道翻译的地址进行网页分析。这时我们应该去找POST属性的网络请求,然后我们就会发现,这个POST请求的网址到底什么意思?其实它就是服务器的地址。当我们要翻译一个内容就必须向服务器发送一些数据,它是以表单参数的形式发送过去,我们可以在浏览器中找到,当网络通畅,没有其他阻碍的时候,服务器收到了给它发的数据,也会返回一个响应,其实它是一个json的数据类型。其中包括我们输入的内容以及服务器分析之后返回的内容,数据类型如下,

{"translateResult":[[{"tgt":"hello","src":"你好"}]],"errorCode":0,"type":"zh-CHS2en","smartResult":{"entries":["","hello\r\n","hi\r\n","how do you do\r\n"],"type":1}}

4.爬虫实现模块

以上就是我们对翻译过程进行的分析,其实也不是很难,接下来我们用Python来模拟这一过程就可以实现英汉互译的效果。浏览器给服务器发送什么內容我们可以用Python同样发送一个内容,当我们用Python模拟成浏览器之后服务器也会返回给我们一个参数。我们可以让程序运行一下,并输入任意一个英文单词,效果图如下:

通过对Python项目的分析,对该系统的各个功能进行设计,并采用了GUI的tkinter库及整合,用requests库进行爬虫项目,完成了整个网站的各个功能的实现。

【参考文献】

于娟,刘强. 主题网络爬虫研究综述[J]. 计算机工程与科学, 2015, 37(02):231-237.

张红云. 基于页面分析的主题网络爬虫的研究[D]. 武汉理工大学, 2010.

张莹. 面向动态页面的网络爬虫系统的设计与实现[D]. 南开大学, 2012.

猜你喜欢

爬虫
基于Python的网络爬虫和反爬虫技术研究
Python反爬虫设计
大数据爬虫风暴
基于Scrapy框架的分布式网络爬虫的研究与实现
谁抢走了低价机票
带你进入网络爬虫与反爬虫的世界