查单词的词典
发布时间:2020-12-17 17:27:51 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 # -*- coding: utf-8 -*from PyQt5.QtWidgets import *from PyQt5.QtCore import *import timeimport sysimport urllib.requestimport redef myformat
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 # -*- coding: utf-8 -* from PyQt5.QtWidgets import * from PyQt5.QtCore import * import time import sys import urllib.request import re def myformat(s): while s.find('<') != -1: i=s.find('<') j=s.find('>') s = s[:i]+s[j+1:] while s.find('&') != -1: i=s.find('&') s = s[:i]+s[i+4:] while s.find(' ') != -1: i=s.find(' ') s = s[:i]+s[i+5:] while s.find('<') != -1: s = s[:s.find('<')]+s[s.find('<')+len('<'):] return s def translate(word): print(word) url = 'http://dict.baidu.com/s?wd=' + word print("url = " + url); response = urllib.request.urlopen(url) html = response.read().decode('utf-8') result = "" re_soundmark = re.compile('英.*?<b lang="EN-US" xml:lang="EN-US">(.*?)</b>') soundmark = re_soundmark.findall(html) print(soundmark) if not soundmark: result += word + 'n' else: result += word + 'n英:' + soundmark[0] re_soundmark = re.compile('美.*?<b lang="EN-US" xml:lang="EN-US">(.*?)</b>') soundmark = re_soundmark.findall(html) if not soundmark: result += ' '.join(word) +'n' else: result += " 美:" + soundmark[0] + 'n' re_colines = re.compile('<span class="collins-cnmeans">(.*?)</span><span>(.*?)</span>') colines = re_colines.findall(html) for k,v in colines: result += k+'n' result += myformat(v) + 'n' re_meaning = re.compile('<p><strong>(.*?)</strong><span>(.*?)</span></p>') meanings = re_meaning.findall(html) for k,v in meanings: result += myformat(k) + myformat(v) +'n' re_statement = re.compile('<li><p>(.*?)</p><p>(.*?)</p></li>') statements = re_statement.findall(html) i=0 for k,v in statements: if i >= 5: break result += myformat(k)+myformat(v)+'n' i=i+1 return result class WorkThread(QThread): trigger = pyqtSignal(str) def __init__(self): super(WorkThread,self).__init__() self.word = "" def SetWord(self,Word): self.word = Word def run(self): print("runn") print("world = {0}".format(self.word)) result = translate(self.word) self.trigger.emit(result) class MyWindow(QWidget): def __init__(self): super(MyWindow,self).__init__() self.TextEdit = QTextEdit() self.TextEdit.setFixedHeight(30) self.button1 = QPushButton("One") self.button2 = QPushButton("Search") self.label1 = QLabel() self.layout = QGridLayout() self.layout.addWidget(self.TextEdit) self.layout.addWidget(self.button1) self.layout.addWidget(self.button2) self.layout.addWidget(self.label1) self.setLayout(self.layout) self.resize(200,200) self.button1.clicked.connect(self.ButtonCallBack) self.button2.clicked.connect(self.StartWorkInAThread) self.w = WorkThread() self.w.trigger.connect(self.Stop) def ButtonCallBack(self,e): print(e) print(type(self)) print(self.sender().text()) def StartWorkInAThread(self,e): text = self.TextEdit.toPlainText() self.w.SetWord(text) self.w.start() print("start workn") def Stop(self,text): print("stopn") print(text) print(self.sender().isFinished()) self.label1.setText(text) if __name__=='__main__': app = QApplication(sys.argv) w = MyWindow() w.show() sys.exit(app.exec_()) 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |