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()


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