日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pyqt5制作翻译软件+爬虫

發(fā)布時(shí)間:2024/1/1 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyqt5制作翻译软件+爬虫 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

VSC+python+mysql,

文章目錄

目錄

文章目錄

前言

一、詳細(xì)代碼

第一個(gè)文件Ui_untitled.py

第二個(gè)fy_main.py文件:

第三個(gè)?:bd_pachong.py

二、登錄界面:

總結(jié)


前言

通過pyqt5實(shí)現(xiàn)了翻譯界面的可視化,利用python爬蟲實(shí)現(xiàn)了翻譯,如下圖:

?英——>漢

漢——>英

?

?句子翻譯:

?

一、詳細(xì)代碼

第一個(gè)文件Ui_untitled.py

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'd:\python代碼\翻譯\untitled.ui' # # Created by: PyQt5 UI code generator 5.15.4 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing.from PyQt5.QtWidgets import QApplication,QMainWindow,QMessageBox from PyQt5 import QtCore, QtGui, QtWidgets from bdpachong import *class Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(900, 741)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setStyleSheet("background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 255, 255, 255), stop:1 rgba(255, 255, 255, 255));")self.centralwidget.setObjectName("centralwidget")self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)self.verticalLayout.setContentsMargins(0, 0, 0, 0)self.verticalLayout.setSpacing(1)self.verticalLayout.setObjectName("verticalLayout")self.textEdit = QtWidgets.QTextEdit(self.centralwidget)sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(self.textEdit.sizePolicy().hasHeightForWidth())self.textEdit.setSizePolicy(sizePolicy)self.textEdit.setMaximumSize(QtCore.QSize(16777215, 85))self.textEdit.setSizeIncrement(QtCore.QSize(0, 0))font = QtGui.QFont()font.setPointSize(20)font.setBold(True)font.setWeight(75)font.setKerning(True)self.textEdit.setFont(font)self.textEdit.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.ArrowCursor))self.textEdit.setMouseTracking(False)self.textEdit.setToolTipDuration(-1)self.textEdit.setStyleSheet("background-color: qlineargradient(spread:pad, x1:1, y1:1, x2:1, y2:1, stop:0 rgba(4, 192, 213, 255), stop:1 rgba(255, 255, 255, 255));\n" "border-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 255, 255, 255), stop:1 rgba(255, 255, 255, 255));")self.textEdit.setFrameShadow(QtWidgets.QFrame.Raised)self.textEdit.setLineWidth(1)self.textEdit.setMidLineWidth(0)self.textEdit.setLineWrapColumnOrWidth(0)self.textEdit.setTabStopWidth(80)self.textEdit.setAcceptRichText(True)self.textEdit.setCursorWidth(1)self.textEdit.setObjectName("textEdit")self.verticalLayout.addWidget(self.textEdit)self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)self.textEdit_2.setMaximumSize(QtCore.QSize(16777215, 60))self.textEdit_2.setStyleSheet("background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(0, 192, 213, 255), stop:1 rgba(190, 255, 255, 255));")self.textEdit_2.setObjectName("textEdit_2")self.verticalLayout.addWidget(self.textEdit_2)self.pushButton = QtWidgets.QPushButton(self.centralwidget)palette = QtGui.QPalette()brush = QtGui.QBrush(QtGui.QColor(147, 221, 221))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)brush = QtGui.QBrush(QtGui.QColor(147, 221, 221))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)self.pushButton.setPalette(palette)font = QtGui.QFont()font.setPointSize(10)font.setBold(True)font.setItalic(False)font.setWeight(75)self.pushButton.setFont(font)self.pushButton.setStyleSheet("background-color: rgb(170, 255, 255);\n" "border-color: rgb(170, 255, 255);\n" "")self.pushButton.setObjectName("pushButton")self.verticalLayout.addWidget(self.pushButton)self.label_5 = QtWidgets.QLabel(self.centralwidget)self.label_5.setMaximumSize(QtCore.QSize(16777215, 30))palette = QtGui.QPalette()brush = QtGui.QBrush(QtGui.QColor(186, 186, 186))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)brush = QtGui.QBrush(QtGui.QColor(222, 222, 222, 222))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)brush = QtGui.QBrush(QtGui.QColor(222, 222, 222, 222))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)brush = QtGui.QBrush(QtGui.QColor(222, 222, 222, 222))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)brush = QtGui.QBrush(QtGui.QColor(186, 186, 186))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)brush = QtGui.QBrush(QtGui.QColor(222, 222, 222, 222))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)brush = QtGui.QBrush(QtGui.QColor(222, 222, 222, 222))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)brush = QtGui.QBrush(QtGui.QColor(222, 222, 222, 222))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)brush = QtGui.QBrush(QtGui.QColor(222, 222, 222, 222))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)brush = QtGui.QBrush(QtGui.QColor(222, 222, 222, 222))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)brush = QtGui.QBrush(QtGui.QColor(222, 222, 222, 222))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)self.label_5.setPalette(palette)font = QtGui.QFont()font.setBold(True)font.setWeight(75)self.label_5.setFont(font)self.label_5.setMouseTracking(False)self.label_5.setStyleSheet("background-color: rgba(222,222,222,222);")self.label_5.setLineWidth(3)self.label_5.setIndent(5)self.label_5.setObjectName("label_5")self.verticalLayout.addWidget(self.label_5)self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget)self.textEdit_3.setObjectName("textEdit_3")self.verticalLayout.addWidget(self.textEdit_3)self.verticalLayout.setStretch(0, 1)MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 900, 26))self.menubar.setObjectName("menubar")self.menu = QtWidgets.QMenu(self.menubar)self.menu.setObjectName("menu")self.menu_2 = QtWidgets.QMenu(self.menubar)self.menu_2.setObjectName("menu_2")self.menu_3 = QtWidgets.QMenu(self.menubar)self.menu_3.setObjectName("menu_3")self.menu_4 = QtWidgets.QMenu(self.menubar)self.menu_4.setObjectName("menu_4")self.menu_5 = QtWidgets.QMenu(self.menubar)self.menu_5.setObjectName("menu_5")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.action = QtWidgets.QAction(MainWindow)self.action.setObjectName("action")self.action_2 = QtWidgets.QAction(MainWindow)self.action_2.setObjectName("action_2")self.menu.addAction(self.action)self.menu.addAction(self.action_2)self.menubar.addAction(self.menu.menuAction())self.menubar.addAction(self.menu_2.menuAction())self.menubar.addAction(self.menu_3.menuAction())self.menubar.addAction(self.menu_4.menuAction())self.menubar.addAction(self.menu_5.menuAction())self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))self.pushButton.setText(_translate("MainWindosetIconTextw", "開 始 翻 譯"))self.label_5.setText(_translate("MainWindow", "例句/短語(yǔ)"))self.menu.setTitle(_translate("MainWindow", "菜單"))self.menu_2.setTitle(_translate("MainWindow", "工具"))self.menu_3.setTitle(_translate("MainWindow", "設(shè)置"))self.menu_4.setTitle(_translate("MainWindow", "視圖"))self.menu_5.setTitle(_translate("MainWindow", "幫助"))self.action.setText(_translate("MainWindow", "收藏"))self.action_2.setText(_translate("MainWindow", "添加入詞庫(kù)"))self.action_2.setIconText(_translate("MainWindow", "添加入詞庫(kù)"))self.pushButton.clicked.connect(self.ksfy)#對(duì)用戶輸入的進(jìn)行判斷def ksfy(self):word=self.textEdit.toPlainText()word=word.replace("\n","").replace("?","").replace("!","").replace(" ","%20").replace(",","") #防止輸入回車導(dǎo)致報(bào)錯(cuò)a,b=pacho(word)if len(a)==0 and len(b)==0:QMessageBox.critical(None,'警告','十分抱歉,未能找到您輸入對(duì)應(yīng)的翻譯\n請(qǐng)重新輸入',QMessageBox.Yes)else:s=''for cy in a:s=s+str(cy)+'\n\n'self.textEdit_2.setText(s)s=''for lj in b:s=s+str(lj)+'\n\n'self.textEdit_3.setText(s)

第二個(gè)fy_main.py文件:

from PyQt5.QtWidgets import QApplication,QMainWindow from Ui_untitled import * import sysfrom Ui_untitled import Ui_MainWindow if __name__ == "__main__":app = QApplication(sys.argv)win_fy = QMainWindow()fy = Ui_MainWindow()fy.setupUi(win_fy)win_fy.show()sys.exit(app.exec_())

第三個(gè)?:bd_pachong.py

from lxml import etree from matplotlib.pyplot import flag import requests def pacho(word):header={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33'}page_url='https://dict.youdao.com/w/'+word+'/#keyfrom=dict2.top'page_text=requests.get(url=page_url,headers=header).texttree=etree.HTML(page_text)# tree1 = html.tostring(tree[0])# #編碼'utf-8'# tree2 = HTMLParser().unescape(tree1.decode('utf-8'))# print(tree2)res = Truefor w in word: #判斷是否全是中文if not '\u4e00' <= w <= '\u9fff':res = Falseif word.encode('utf-8').isalpha(): #判斷是否全是英文ciyi=tree.xpath('//*[@id="phrsListTab"]/div[2]/ul/li/text()')liju=tree.xpath('//*[@id="collinsResult"]/div/div/div/div/ul/li/div/div/p/text()')return ciyi,lijuelse: changju=tree.xpath('//*[@id="fanyiToggle"]/div/p[2]/text()')ciyi=tree.xpath('//*[@id="phrsListTab"]/div[2]/ul/p[1]/span/a/text()') liju=tree.xpath('//*[@id="webPhrase"]/p/span/a/text()')dy=tree.xpath('//*[@id="webPhrase"]/p/text()')dy_a=[]for i in dy: #數(shù)據(jù)清洗if len(i.replace("\n","").replace(" ",""))==0:continue dy_a.append(i.replace("\n","").replace(" ",""))for i in range(len(liju)):liju[i]=liju[i]+':'+dy_a[i] #歸并數(shù)據(jù)if len(liju)==0 and len(ciyi)==0:liju=changjureturn ciyi,lijuif __name__=='__main__':pacho()

二、登錄界面:

這的登錄界面只需要去看我的另一篇文章,之需要將登錄那個(gè)板塊的代碼復(fù)制,修改一下素材的路徑就可以了,這里就不贅述了。

pyqt5重慶連接二手房數(shù)據(jù)可視化完整項(xiàng)目_lanzha的博客-CSDN博客


總結(jié)

這里只展示了翻譯節(jié)目的制作,以及爬蟲的文件,數(shù)據(jù)來(lái)源與有道。爬蟲可以直接作為單個(gè)項(xiàng)目是運(yùn)行。下面是整個(gè)完整項(xiàng)目的壓縮包

一個(gè)可視化界面的翻譯項(xiàng)目,可以實(shí)現(xiàn)漢譯英與英譯漢。-Python文檔類資源-CSDN文庫(kù)

總結(jié)

以上是生活随笔為你收集整理的pyqt5制作翻译软件+爬虫的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。