最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解python使用金山詞霸的翻譯功能(調試工具斷點的使用)

 更新時間:2021年01月07日 16:41:53   作者:yuankingping  
這篇文章主要介紹了詳解python使用金山詞霸的翻譯功能(調試工具斷點的使用),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

今天試著用python獲取金山詞霸的翻譯功能,鏈接在這里:
ICIBA傳送門
打開之后,界面是這樣的,還是比較干凈的。

在這里插入圖片描述

按F12,打開調試工具,選擇Network,找到XHR

在這里插入圖片描述

這里就是查看網(wǎng)絡傳輸?shù)膬热荨HR就是不刷新頁面的網(wǎng)絡傳輸,就是常說的ajax(阿賈克斯,像是希臘神話里的名字……)。
然后我們在翻譯窗口寫點兒內容,然后點翻譯

在這里插入圖片描述

看,左邊的頁面出現(xiàn)了翻譯結果,右邊調試窗口出現(xiàn)了兩條數(shù)據(jù)傳輸。
兩條?那我們選哪條呢?點開看看……
哦,天哪~兩條都是一樣的,那我們隨便選一條就可以了。
點一下,看后面的內容

在這里插入圖片描述

好了,首先看到的是Request URL。嗯……就是我們要的URL了。
先記下來……
(你是用復制、粘貼,還是鍵盤上手打?難道是抄在本子上?)
下面的Post也要記住,這是請求類型,別用成get了。
再往下,

在這里插入圖片描述

上面那部分是不是很熟悉?對了,就是URL鏈接里的東西。不管他,URL里有了就好了。
下面的部分,就是要提交的數(shù)據(jù)了。
把這部分轉成字典格式:

data = {
	'from':'zh'
	'to':'en'
	'q':'風'
}

 

fromto這就好理解了,就是從中文到英文嘛。好,咱們不管他是中是英,都給成“auto”,讓他自己去猜去……
q就是我們查的詞語,那我們就用變量q表示吧,這樣改后的字典就是:

data = {
	'from':'auto'
	'to':'auto'
	'q':q
}

提交的數(shù)據(jù)有了,那我們把請求頭建立起來吧
再讓我們回到調試工具里去看下

在這里插入圖片描述

headers就是請求頭部,那里面這么多東西,我們要用什么呢?
當然**User-Agent:**不能少了

headers = {
  'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER'
  }

好了,我們需要的東西都齊了,那就開始吧:
首先是引入文件,

import requests

我們再到調試工具里看下返回值,看下獲取的內容是什么格式的。一般返回值有json的,也有html的。

在這里插入圖片描述

這里把返回的結果給你了,這就是json的數(shù)據(jù)格式。
我們用q來獲取輸入的文本

q = input('請輸入要翻譯的內容:')

整理后就是這樣了:

import requests
q = input('請輸入要翻譯的內容:')
headers = {
 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
 }
url = 'https://ifanyi.iciba.com/index.php?c=trans&m=fy&client=6&auth_user=key_ciba&sign=c1b23d3ff9163427'
data = {
 'from':'auto',
 'to':'auto',
 'q':q
  }

res = requests.post(url=url,headers=headers,data=data).json()
print(res)

好了,運行一遍試下

在這里插入圖片描述

我們輸入要翻譯的內容,

在這里插入圖片描述

不錯,結果返回了,是json格式的數(shù)據(jù),里面有我們需要的結果。
再換個詞試下……

在這里插入圖片描述

這是什么情況?為什么錯了?
好吧,我們在瀏覽器里試下

在這里插入圖片描述

點開看一下……

發(fā)現(xiàn)了嗎?sign不一樣……
前一個是什么?

sign=c1b23d3ff9163427'

這個是

sign=4b733a5ea3f4dd5a

sign是動態(tài)生成的,怎么辦?找生成方法!

在這里插入圖片描述

我們看這里……

這是運行的代碼的位置,我們點進去……

在這里插入圖片描述

上面老長一行了,怎么辦?
看左下角的大括號了嗎?點下就會有驚喜!

在這里插入圖片描述

好棒!已經排列整齊了……
下面就是在這里查找sign的位置了,Ctrl+F,開始搜索

在這里插入圖片描述

23個結果,一個個看過去……找找哪個比較像加密的……

在這里插入圖片描述

看,這里是對URL進行拼接的。上面就是sign的加密方式
sign后面拼接的是個r,r就是上面的一行算出來的,

r = c()("6key_cibaifanyicjbysdlove1".concat(t.q.replace(/(^\s*)|(\s*$)/g, ""))).toString().substring(0, 16);

你看,這個r就是用一系列字符串拼接起來的,都有什么呢?

1、"6key_cibaifanyicjbysdlove1"
2、t.q.replace(/(^\s*)|(\s*$)/g, "")

第一個簡單,就是一串固定的字符串
第二個呢?t.q是什么鬼?我們來找一下……
好,我們在這一行打個斷點,就是在前面的行號上點一下。

在這里插入圖片描述

看見藍色的標簽了吧,這就是個斷點。在運行的時候,運行到這里就會停止,然后把當前狀態(tài)給你報出來。好了,斷點有了,

咱們讓點下翻譯,讓他運行下看看

在這里插入圖片描述

運行到斷點時,停止了,并將當前的參數(shù)顯示了出來。把鼠標放在q上……

在這里插入圖片描述

所得寺內!原來就是我們要查的詞哦……
然后就把他們拼在一起……

"6key_cibaifanyicjbysdlove1"+"云"

可是c()又是什么鬼?好吧,我們看下加密后的結果是什么

在這里插入圖片描述

這個字符串是不是很眼熟?很像md5不是嗎?
好的,那我們找一個md5加密工具試下,把加密前的字符串拼接起來

"6key_cibaifanyicjbysdlove1云"

然后我們放到md5加密工具里,看結果

在這里插入圖片描述

看這里……

在這里插入圖片描述

是不是這個?32位加密后的前16位!
我們再驗證一下,換一個詞查下,我們查下“雨”

在這里插入圖片描述

我把字符串拼接好

"6key_cibaifanyicjbysdlove1雨"

放到md5工具里看下

在這里插入圖片描述

是不是一樣的?好了,我們知道sign的加密規(guī)則了,那我們自己就把這個sign加密。
要用到md5,我們就要引用新的文件了

import hashlib

至于md5的用法,可以看下:

import hashlib
 
 
hash = hashlib.md5()#md5對象,md5不能反解,但是加密是固定的,就是關系是一一對應,所以有缺陷,可以被對撞出來
hash.update(bytes('admin',encoding='utf-8'))#要對哪個字符串進行加密,就放這里
print(hash.hexdigest())#拿到加密字符串
# hash2=hashlib.sha384()#不同算法,hashlib很多加密算法
# hash2.update(bytes('admin',encoding='utf-8'))
# print(hash.hexdigest())
 
 
hash3 = hashlib.md5(bytes('abd',encoding='utf-8'))
''' 如果沒有參數(shù),所有md5遵守一個規(guī)則,生成同一個對應關系,如果加了參數(shù),
就是在原先加密的基礎上再加密一層,這樣的話參數(shù)只有自己知道,防止被撞庫,
因為別人永遠拿不到這個參數(shù)
'''
hash3.update(bytes('admin',encoding='utf-8'))
print(hash3.hexdigest())

然后我們把sign的加密寫一下

sign = (hashlib.md5(("6key_cibaifanyicjbysdlove1"+q).encode('utf-8')).hexdigest())[0:16]

再把sign拼接到url上

sign = (hashlib.md5(("6key_cibaifanyicjbysdlove1"+q).encode('utf-8')).hexdigest())[0:16]
url = 'https://ifanyi.iciba.com/index.php?c=trans&m=fy&client=6&auth_user=key_ciba'
url = url+'&sign='+sign

然后我們運行下看看

在這里插入圖片描述

一切OK,沒問題!
最后我們從返回的json數(shù)據(jù)里提取出我們要的那部分

rt= res['content']['out']
print('翻譯完成:'+rt)

全部代碼就是

import requests
import hashlib

q = input('請輸入要翻譯的內容:')

headers = {
 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
 }


url = 'https://ifanyi.iciba.com/index.php?c=trans&m=fy&client=6&auth_user=key_ciba'
sign = (hashlib.md5(("6key_cibaifanyicjbysdlove1"+q).encode('utf-8')).hexdigest())[0:16]
url = url+'&sign='+sign

data = {
 'from':'auto',
 'to':'auto',
 'q':q
  }

res = requests.post(url=url,headers=headers,data=data).json()

rt= res['content']['out']
print('翻譯完成:'+rt)

運行看下:

在這里插入圖片描述

OK,翻譯完工!

總結:
post請求的所有data都是已知的,只有url里有一個動態(tài)的sign。麻煩的地方就是查找sign的加密方式。
一般情況下,大部分sign的加密都是使用的md5,你只要找到用來加密的字符串就可以了。
使用斷點來跟蹤運行過程是比較常用的手段,但也不是全都能找到結果的。

到此這篇關于詳解python使用金山詞霸的翻譯功能(調試工具斷點的使用)的文章就介紹到這了,更多相關python金山詞霸的翻譯內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python裝飾器類方法擴展元類管理實例探究

    Python裝飾器類方法擴展元類管理實例探究

    這篇文章主要為大家介紹了Python裝飾器類方法擴展元類管理實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 一文帶你弄懂Python3中的def?__init__

    一文帶你弄懂Python3中的def?__init__

    說起基礎的init函數(shù)也是我們的老朋友了,組合函數(shù)的要么是理解又一定的難度,要么是操作方法有復雜的地方,小編今天要講的def __init()__屬于第一種,下面這篇文章主要給大家介紹了關于如何通過一文帶你弄懂Python3中的def?__init__的相關資料,需要的朋友可以參考下
    2022-12-12
  • python實現(xiàn)兩個經緯度點之間的距離和方位角的方法

    python實現(xiàn)兩個經緯度點之間的距離和方位角的方法

    今天小編就為大家分享一篇python實現(xiàn)兩個經緯度點之間的距離和方位角的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 基于Python獲取亞馬遜的評論信息的處理

    基于Python獲取亞馬遜的評論信息的處理

    這篇文章主要介紹了基于Python獲取亞馬遜的評論信息的處理方法,用戶的評論能直觀的反映當前商品值不值得購買,亞馬遜的評分信息也能獲取到做一個評分的權重,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • python爬取氣象臺每日天氣圖代碼

    python爬取氣象臺每日天氣圖代碼

    大家好,本篇文章主要講的是python爬取氣象臺每日天氣圖代碼,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 分析PyTorch?Dataloader報錯ValueError:num_samples的另一種可能原因

    分析PyTorch?Dataloader報錯ValueError:num_samples的另一種可能原因

    這篇文章主要介紹了分析PyTorch?Dataloader報錯ValueError:num_samples的另一種可能原因,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python 與服務器的共享文件夾交互方法

    python 與服務器的共享文件夾交互方法

    今天小編就為大家分享一篇python 與服務器的共享文件夾交互方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python使用openpyxl打開及讀取excel表格過程

    python使用openpyxl打開及讀取excel表格過程

    openpyxl是一個Python庫,用于讀寫Excel?2010?xlsx/xlsm文件,它允許你輕松工作與Excel表格,進行數(shù)據(jù)處理和分析,支持讀取、創(chuàng)建和修改Excel文件,甚至可以在Excel中插入圖表等,安裝非常簡單,只需要使用pip命令即可
    2024-09-09
  • Python?configparser模塊的用法示例代碼

    Python?configparser模塊的用法示例代碼

    這篇文章主要介紹了Python?configparser模塊的用法,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • python uvloop事件循環(huán)庫使用功能示例探究

    python uvloop事件循環(huán)庫使用功能示例探究

    這篇文章主要為大家介紹了python uvloop事件循環(huán)庫使用功能示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01

最新評論

南康市| 宕昌县| 金山区| 江门市| 龙泉市| 开原市| 鄂温| 灯塔市| 都兰县| 曲沃县| 黑龙江省| 桐柏县| 平南县| 张家界市| 万山特区| 罗城| 旬邑县| 扎囊县| 邵武市| 日喀则市| 达孜县| 贵港市| 宁晋县| 揭阳市| 沙雅县| 黄冈市| 县级市| 渝北区| 遵化市| 海盐县| 祥云县| 淮阳县| 张家口市| 乌海市| 双峰县| 宁陕县| 昌江| 华容县| 定边县| 大名县| 民县|