查单词的词典
发布时间: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】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
