홈 페이지 검색 작별!python 으로 자신 만 의 번역 사전 소프트웨어 를 실현 하 는 것 을 가르쳐 드 립 니 다.
1.먼저 로그 인 한 py 파일 을 쓰 고 python 의 tkinter 라 이브 러 리 를 사용 합 니 다.
2.번역 출력 표시 줄 의 내용 을 얻 기 위해 py 파일 을 하나 더 작성 합 니 다.
3.python 의 tkinter 라 이브 러 리 를 이용 하여 소프트웨어 가 실행 되 는 창 을 완성 합 니 다.
4.창의 반환 값 과 번역 결과 인 터 페 이 스 를 맞 춥 니 다.
5.두 번 째 py 파일 에서 import 첫 번 째 py 파일,두 파일 연결
코드 분석
요청 방식 은 post 입 니 다.from data 의 값 에 주의 하 십시오.여 기 는 웹 페이지 에서 번역 하고 자 하 는 내용 을 하나 더 질 수 있 습 니 다.from data 의 값 변 화 를 관찰 하면'alt','sign','lts'세 가지 값 변 화 를 확인 할 수 있 습 니 다.
웹 페이지 소스 코드 검색.js 에 들 어가 서 해당 하 는 js 파일 을 찾 고 암호 화 규칙 을 찾 으 면 마지막 으로 얻 은 response 를 사전 으로 전환 하여 결 과 를 추출 합 니 다.
class YouDao(object):
a.LoginPage()
def __init__(self):
pass
def crawl(self, content):
# .js 'salt''sign''lts' js js
lts = int(time.time() * 1000) #
timestamp = lts + random.randint(0, 10)
# sign: n.md5("fanyideskweb" + e + i + "Tbh5E8=q6U3EXe+&L[4c@")
a = "fanyideskweb"
e = content
i = str(timestamp)
d = "Tbh5E8=q6U3EXe+&L[4c@"
sign = hashlib.md5((a+e+i+d).encode('utf-8')).hexdigest()
data = {
'i': content,
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': timestamp,
'sign': sign,
'lts': lts,
'bv': 'dd67d51c2bbb03cccdbcfa48735ba27f',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_CLICKBUTTION'
}
data = urllib.parse.urlencode(data).encode('utf-8')
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36',
'Cookie': '[email protected]; DICT_UGC=be3af0da19b5c5e6aa4e17bd8d90b28a|; JSESSIONID=abcJcdIfpYuE3eNgyi3Dx; OUTFOX_SEARCH_USER_ID_NCOO=902501357.1460881; user-from=http://www.youdao.com/; from-page=http://www.youdao.com/; _ntes_nnid=250706e8175b6796101a34821527eb62,1612611490655; DICT_SESS=v2|qKlfGGGmbVOAOfp40fQy0UWhfPuOMzWRlfk4Qz0LYERTu0flfn4Ul0l50He40fOW0TK6LlWRf6B0w46LYmh46F0JShMTLOfOm0; DICT_LOGIN=1||1612612510172; STUDY_SESS=EtwvT8KhyXqnLv8r0zdde8FcMOICmtZSIsltEiKZiAQq44wPVNN6PupszWYKIkBKfygQdvKlXU7p3aF+p0H6VcZLod3s2Bld6H/EWIphmRS92qG/3vVhSxHFAXq2yJp8QyH/R6RElNstKdVewVkZp+NyGWhzlamzU5dl6aBiyQ2Ybdo8MpdaPQB26wR6JPAU+P6MxCmnJEvne6pPMc9TTJJnThNrM7aj0X5LVpSBvjZ0h3M1drl4ZsmtkumIhrpyk1pBNevj8UEmS52Cj8DFo+yez89Xrbg4rxsvfSmuH21KlOh/Gwx6G1S/X4FQ7qd/Z2lDsk6Qgl21Md/1bCxa/orloi9qObM4N2yVCVhvkDdg5ILQezB8iskCpUa+ESZk; STUDY_INFO=UID_10AE81F6EF9DD9807BAC3FF3FD6407BA|4|1456638755|1612612364854; ___rl__test__cookies=1612663596564',
'Referer': 'http://fanyi.youdao.com/',
}
request = urllib.request.Request('http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule',
method='POST', data=data, headers=headers)
response = urllib.request.urlopen(request)
result_str = response.read().decode('utf-8')
result_dict = json.loads(result_str)
result = result_dict["translateResult"][0][0]["tgt"]
return result
3.소프트웨어 창 인터페이스특히 버튼 여기 조심 하 세 요.
self.button=단추(self.window,text=u'조회',command=self.function)
명령 실행 기능
class Application(object):
def __init__(self):
#
self.window = Tk()
#
self.window.title(u' ')
#
self.window.geometry("280x350+400+150")
#
self.entry = Entry(self.window)
self.entry.place(x=10, y=10, width=200, height=25) # width= , height=
#
self.button = Button(self.window, text=u' ', command=self.function) # command
self.button.place(x=220, y=10, width=50, height=25)
#
self.label = Label(self.window, text=u' :')
self.label.place(x=10, y=45)
#
self.text = Text(self.window, background='#ccc') #
self.text.place(x=10, y=75, width=260, height=265)
function 파충류 가 돌아 오 는 값 과 창의 번역 상 자 를 인터페이스 로 만 듭 니 다.
def function(self):
#
content = self.entry.get()
#
youdao = YouDao()
result = youdao.crawl(content)
#
self.text.delete(1.0, END) #
self.text.insert(END, result) # END
4.소스 코드 전시
import urllib.request #
import urllib.parse #
import time
import random
import hashlib
import json
from tkinter import Tk, Entry, Button, Label, Text, END # Tk( ), Entry( ), Button( ), Label( ), Text( ),
# END
import a
class YouDao(object):
a.LoginPage()
def __init__(self):
pass
def crawl(self, content):
# .js 'salt''sign''lts' js js
lts = int(time.time() * 1000) #
timestamp = lts + random.randint(0, 10)
# sign: n.md5("fanyideskweb" + e + i + "Tbh5E8=q6U3EXe+&L[4c@")
a = "fanyideskweb"
e = content
i = str(timestamp)
d = "Tbh5E8=q6U3EXe+&L[4c@"
sign = hashlib.md5((a+e+i+d).encode('utf-8')).hexdigest()
data = {
'i': content,
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': timestamp,
'sign': sign,
'lts': lts,
'bv': 'dd67d51c2bbb03cccdbcfa48735ba27f',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_CLICKBUTTION'
}
data = urllib.parse.urlencode(data).encode('utf-8')
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36',
'Cookie': '[email protected]; DICT_UGC=be3af0da19b5c5e6aa4e17bd8d90b28a|; JSESSIONID=abcJcdIfpYuE3eNgyi3Dx; OUTFOX_SEARCH_USER_ID_NCOO=902501357.1460881; user-from=http://www.youdao.com/; from-page=http://www.youdao.com/; _ntes_nnid=250706e8175b6796101a34821527eb62,1612611490655; DICT_SESS=v2|qKlfGGGmbVOAOfp40fQy0UWhfPuOMzWRlfk4Qz0LYERTu0flfn4Ul0l50He40fOW0TK6LlWRf6B0w46LYmh46F0JShMTLOfOm0; DICT_LOGIN=1||1612612510172; STUDY_SESS=EtwvT8KhyXqnLv8r0zdde8FcMOICmtZSIsltEiKZiAQq44wPVNN6PupszWYKIkBKfygQdvKlXU7p3aF+p0H6VcZLod3s2Bld6H/EWIphmRS92qG/3vVhSxHFAXq2yJp8QyH/R6RElNstKdVewVkZp+NyGWhzlamzU5dl6aBiyQ2Ybdo8MpdaPQB26wR6JPAU+P6MxCmnJEvne6pPMc9TTJJnThNrM7aj0X5LVpSBvjZ0h3M1drl4ZsmtkumIhrpyk1pBNevj8UEmS52Cj8DFo+yez89Xrbg4rxsvfSmuH21KlOh/Gwx6G1S/X4FQ7qd/Z2lDsk6Qgl21Md/1bCxa/orloi9qObM4N2yVCVhvkDdg5ILQezB8iskCpUa+ESZk; STUDY_INFO=UID_10AE81F6EF9DD9807BAC3FF3FD6407BA|4|1456638755|1612612364854; ___rl__test__cookies=1612663596564',
'Referer': 'http://fanyi.youdao.com/',
}
request = urllib.request.Request('http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule',
method='POST', data=data, headers=headers)
response = urllib.request.urlopen(request)
result_str = response.read().decode('utf-8')
result_dict = json.loads(result_str)
result = result_dict["translateResult"][0][0]["tgt"]
return result
class Application(object):
def __init__(self):
#
self.window = Tk()
#
self.window.title(u' ')
#
self.window.geometry("280x350+400+150")
#
self.entry = Entry(self.window)
self.entry.place(x=10, y=10, width=200, height=25) # width= , height=
#
self.button = Button(self.window, text=u' ', command=self.function) # command
self.button.place(x=220, y=10, width=50, height=25)
#
self.label = Label(self.window, text=u' :')
self.label.place(x=10, y=45)
#
self.text = Text(self.window, background='#ccc') #
self.text.place(x=10, y=75, width=260, height=265)
def function(self):
#
content = self.entry.get()
#
youdao = YouDao()
result = youdao.crawl(content)
#
self.text.delete(1.0, END) #
self.text.insert(END, result) # END
def run(self):
self.window.mainloop()
if __name__ == '__main__':
app = Application()
app.run()
# !/usr/bin/nev python
# -*-coding:utf8-*-
import tkinter
import tkinter.messagebox
class LoginPage(object):
def __init__(self):
#
self.win = tkinter.Tk() #
self.username = tkinter.StringVar()
self.password = tkinter.StringVar()
self.n=2
self.createForm()
def login(self):
if self.username.get()==' ' and self.password.get()==' ':
print(' ')
tkinter.messagebox.showinfo(title=' ',message=' ')
self.win.quit()
elif self.n==0:
print(' ')
self.win.quit()
else:
print(' ')
print(' , %d '%self.n)
tkinter.messagebox.showerror(title=' ',message=' ')
self.n-=1
def createForm(self):
self.win.title(' ')
self.win.geometry("280x200+400+150")
#
labelname = tkinter.Label(self.win,text=' :',justify=tkinter.RIGHT,width = 100)
labelname.place(x=35,y=50,width=80,height=20)
#
entryname = tkinter.Entry(self.win, width=150, textvariable=self.username)
entryname.place(x=110, y=50, width=120, height=20)
#
labelpwd = tkinter.Label(self.win,text=' :', justify=tkinter.RIGHT,width=80)
labelpwd.place(x=35, y=80, width=80, height=20)
#
entrypwd = tkinter.Entry(self.win, width=150,textvariable=self.password)
entrypwd.place(x=110, y=80, width=120, height=20)
# button
buttonOk = tkinter.Button(self.win,text=' ',command=self.login)
buttonOk.place(x=95,y=130,width=50,height=20)
#
buttonQuit = tkinter.Button(self.win,text=' ',command=self.win.quit)
buttonQuit.place(x=145,y=130,width=50,height=20)
self.win.mainloop()
if __name__ == '__main__':
lg = LoginPage()
모두 두 개의 py 파일 이 있 습 니 다.빨리 소장 하 세 요.빨리 가서 해 보 세 요.자신의 번역 사전 을 가 질 수 있 습 니 다!!효과 전시
먼저 소프트웨어 효 과 를 보고 먼저 로그 인 하 세 요.
여러 가지 언어 를 모두 바 꿀 수 있다
고별 홈 페이지 검색!python 으로 자신 만 의 번역 사전 소프트웨어 를 실현 하 는 것 을 가 르 치 는 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python 번역 사전 소프트웨어 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.