PCC频点配置 ADD PCCFREQCFG: PccDlEarfcn=1300,Preferred

项目目的 图片



目的一:验证Python中文编程的可行性。


目的二 进一步提升个人网络爬虫技术。

目的三打造一个专属于自己的翻译器。


项目结果图片



核心思想:爬虫技术获取在线翻译结果。


难点 在线翻译存在反爬虫技术,需进行反爬虫破解。

结果使用中文(变量名及函数名的应用)编程验证并实现预定目标。

中-英翻译:




图片

英-中翻译:

图片

小日本-中翻译:

棒子-中翻译:

可支持中英互译;日、韩、法、德、俄等支持翻译成中文。

可翻译段落或者文章:

图片


项目代码图片



该工具不提供下载地址,直接上源代码,感兴趣的小伙伴可自行研究:




import requests,jsonimport time,randomimport hashlibimport wximport win32con,win32api
#--------------------------------md5加密---------------------------------def 加密(要加密的数据):    加密后的值 = hashlib.md5(要加密的数据.encode())    return 加密后的值.hexdigest() #----------------------------单击事件调用函数----------------------------def ck(fram):    if fram.m_textCtrl1.GetValue() == '':        win32api.MessageBox(0, "请输入要翻译的内容", "没有要翻译的内容",win32con.MB_ICONWARNING)    else:        fram.pr.SetValue(在线翻译(fram.m_textCtrl1.GetValue()))    #---------------------------------在线翻译-------------------------------def 在线翻译(要翻译的内容):    翻译链接 = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'    时间戳 = str(int(time.time()*1000))    随机数 = str(random.randint(0,9))    salt = 时间戳 + 随机数    sign = 加密('fanyideskweb' + 要翻译的内容 + salt + 'n%A-rKaT5fb[Gy?;N5@Tj')    表单 = {        "i":要翻译的内容        ,"from":"AUTO"        ,"to":"AUTO"        ,"smartresult":"dict"        ,"client":"fanyideskweb"        ,"salt":salt        ,"sign":sign        ,"ts":时间戳        ,"bv":"e2a78ed30c66e16a857c5b6486a1d326"        ,"doctype":"json"        ,"version":"2.1"        ,"keyfrom":"fanyi.web"        ,"action":"FY_BY_CLICKBUTTION"        }    请求头 = {        'Host':'fanyi.youdao.com'        ,'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0'        ,'Accept': 'application/json, text/javascript, */*; q=0.01'        ,'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2'        ,'Accept-Encoding':'gzip, deflate'        ,'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'        ,'X-Requested-With':'XMLHttpRequest'        ,'Content-Length':'255'        ,'Origin':'http://fanyi.youdao.com'        ,'Connection':'keep-alive'        ,'Referer':'http://fanyi.youdao.com/'        ,'Cookie':'YOUDAO_MOBILE_ACCESS_TYPE=1; [email protected]; JSESSIONID=aaamhmHtcXNGSajBuz95w; ___rl__test__cookies=1574061887541; OUTFOX_SEARCH_USER_ID_NCOO=84762635.26386356'        }    try:        响应值 = requests.post(翻译链接,data = 表单,headers = 请求头)    except:        win32api.MessageBox(0, "翻译超时,请检查网络连接", "翻译超时",win32con.MB_ICONWARNING)    响应值汇总 = ''    响应值处理 = json.loads(响应值.text)    try:        for i in range(1,len(响应值处理['smartResult']['entries'])):            响应值汇总 = 响应值汇总 + 响应值处理['smartResult']['entries'][i]    except:        return 响应值处理['translateResult'][0][0]['tgt']    return 响应值汇总
#############################################################################在线翻译图形界面###########################################################################class MyFrame1 ( wx.Frame ):  def __init__( self, parent ):    wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"在线翻译", pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.CAPTION|wx.CLOSE_BOX|wx.SYSTEM_MENU|wx.TAB_TRAVERSAL )    #self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )    bSizer1 = wx.BoxSizer( wx.VERTICAL )    bSizer2 = wx.BoxSizer( wx.HORIZONTAL )    self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"要翻译的内容:", wx.DefaultPosition, wx.DefaultSize, 0 )    self.m_staticText1.Wrap( -1 )    self.m_staticText1.SetFont( wx.Font( 9, 74, 90, 92, False, "微软雅黑" ) )    self.m_staticText1.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_BACKGROUND ) )    bSizer2.Add( self.m_staticText1, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )    self.m_textCtrl1 = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 260,35 ), 0 )    bSizer2.Add( self.m_textCtrl1, 0, wx.ALIGN_CENTER|wx.ALL, 5 )    self.m_button1 = wx.Button( self, wx.ID_ANY, u"在线翻译", wx.DefaultPosition, wx.DefaultSize, 0 )    bSizer2.Add( self.m_button1, 0, wx.ALIGN_CENTER|wx.ALL, 5 )    bSizer1.Add( bSizer2, 4, wx.EXPAND, 5 )    bSizer4 = wx.BoxSizer( wx.VERTICAL )    self.m_staticText3 = wx.StaticText( self, wx.ID_ANY, u"在线翻译结果:", wx.DefaultPosition, wx.DefaultSize, 0 )    self.m_staticText3.Wrap( -1 )    self.m_staticText3.SetFont( wx.Font( 9, 74, 90, 92, False, "微软雅黑" ) )    bSizer4.Add( self.m_staticText3, 0, wx.ALL, 5 )    self.pr = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 500,400 ), wx.TE_MULTILINE )    bSizer4.Add( self.pr, 0, wx.ALL, 5 )    bSizer1.Add( bSizer4, 6, wx.EXPAND, 5 )    self.SetSizer( bSizer1 )    self.Layout()    self.Centre( wx.BOTH )    # 按钮绑定事件函数    self.m_button1.Bind( wx.EVT_BUTTON, self.translation )  def __del__( self ):    pass  # 单击事件调用函数  def translation( self, event ):    event.Skip()    ck(self)
#-----------------------程序入口------------------------    if __name__ == '__main__':    app = wx.App(False)    frame = MyFrame1(parent=None)    frame.Show()    app.MainLoop()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章