Python爬虫实现实时翻译

       利用Qt Designer 设计一个界面来完成实时翻译,利用python自带的HTTP请求库库urllib进行爬取,最终在界面上显示效果。

 1.设计ui界面,效果如下

                                    

placeholderText为:请输入要翻译的文本。

2.编写translate.py文件

这里用的是python内置的HTTP请求库urllib数据库,可以更加有效的进行爬取。包括四个模块;

第一个模块 request,它是最基本的 HTTP 请求模块,我们可以用它来模拟发送一请求,就像在浏览器里输入网址然后敲击回车一样,只需要给库方法传入 URL 还有额外的参数,就可以模拟实现这个过程了。

第二个 error 模块即异常处理模块,如果出现请求错误,我们可以捕获这些异常,然后进行重试或其他操作保证程序不会意外终止。

第三个 parse 模块是一个工具模块,提供了许多 URL 处理方法,比如拆分、解析、合并等等的方法。

第四个模块是 robotparser,主要是用来识别网站的 robots.txt 文件,然后判断哪些网站可不可以爬取。

下面是程序代码:

import urllib.request

import urllib.parse

import json

import *from PyQt5.QtWidgets

import QApplication, QMainWindowfrom PyQt5.QtGui

import QIconfrom Ui_translate

import Ui_MainWindow

class App(QMainWindow, Ui_MainWindow):   

def __init__(self, parent=None):       

super(App, self).__init__(parent)       

self.setWindowIcon(QIcon('translateIcon.ico'))       

self.master = 0       

self.setupUi(self)       

self.data = {}       

self.url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'            

self.data['doctype'] = 'json'                                           #文档类型

def translateText(self):       

text = self.translate_in.toPlainText()        

if text != '':           

self.data['i'] = text           

data = urllib.parse.urlencode(self.data).encode('utf-8')   #将data以utf-8的形式编码。urlencode()主要作用就是将url附上要提交的数据。        

request = urllib.request.urlopen(self.url, data)           #获得响应,用data访问代码中的url链接 

html = request.read().decode('utf-8')                         #读取打开的网页并进行utf-8解码

target = json.loads(html)                                            #识别json,取出需要的数据

result = []                                                                    #返回结果

for i in range(len(target['translateResult'])):                #for循环  

res = target['translateResult'][i][0]['tgt']               

result.append(res)           

self.translate_out.setPlainText('\n'.join(result))   

if __name__ == '__main__':   

app = QApplication(sys.argv)                                     #pyqt窗口必须在QApplication方法中使用

MainWindow = App()                                                  #生成App类的实例MainWindow

MainWindow.show()                                                   #MainWindow调用show方法

sys.exit(app.exec())                                                   #消息结束时,结束进程,并返回0,接着调用sys.exit()退出程序
3.运行效果:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值