1.先进入有道翻译 然后 找到 进行翻译的 real url
2.我们再 把鼠标 滑一滑 看一看下面还有什么东西 就发现了 salt 和 sign 和 lts
然后多翻译几个单词 在看一看 发现 salt 和 sign 和 lis 一直在变
说明这里有问题呀 有s加密吧
3.下面就是 去找 js加密的文件
3.1打开网页源代码 中正好 有三个 js 文件 分别点看 然后可以 在点开的页面 crtl+f 搜一搜 看看有没有sign这样的东西呀
3.2看的话 可以现在这个网站 美化一哈 再看一看 美化美化在这里
3.3然后美化后 可以 复制一下 然后粘贴在文本里面 选择 javascr 然后 crtl+f 然后搜索 sign 看它的函数
就是这个把
var n = e("./jquery-1.7");
e("./utils");
e("./md5");
var r = function(e) {
var t = n.md5(navigator.appVersion),
r = "" + (new Date).getTime(),
# (new Date).getTime() 这是 时间戳(指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。)不过这里是以 毫秒为单位
i = r + parseInt(10 * Math.random(), 10);
#parseInt(10 * Math.random(), 10) 1-10的随机数, 最后的那个10 代表 10 进制
return {
ts: r,
bv: t,
salt: i,
sign: n.md5("fanyideskweb" + e + i + "Tbh5E8=q6U3EXe+&L[4c@")
}
};
t.recordUpda
import requests
import time
import random
import hashlib
url='http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
'Cookie':'OUTFOX_SEARCH_USER_ID=-107820179@183.230.12.194; JSESSIONID=aaavxcT6sV994fn2skxDx; __guid=204659719.4322438783133235700.1612075052687.918; monitor_count=1; OUTFOX_SEARCH_USER_ID_NCOO=1091432003.1990173; ___rl__test__cookies=1612075081353',
'Referer':'http://fanyi.youdao.com/'
}
word=input('请输入要翻译的单词:')
time=time.time()*1000 #python中的 是以秒为单位的 需要是毫秒
salt=str(time)+str(random.randint(0,10))
lts=time
sign_false="fanyideskweb" + word + salt + "Tbh5E8=q6U3EXe+&L[4c@"
sign=hashlib.md5(sign_false.encode("utf8")).hexdigest() #md5 是一个加密方法
data={
'i': word,
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': salt,
'sign': sign,
'lts': time,
'bv': 'cc652a2ad669c22da983a705e3bca726',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_CLICKBUTTION',
}
resp = requests.post(url,headers=headers,data=data)
print(resp.json())
有时候啊 js 破解成本太高 就采用selenium
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import selenium.webdriver.support.expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
word=input('请输入需要翻译的单词:')
driver=webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('http://fanyi.youdao.com/')
driver.maximize_window()
actions=ActionChains(driver)
input_tag=driver.find_element_by_id('inputOriginal')
actions.move_to_element(input_tag)
input_tag.clear()
actions.send_keys_to_element(input_tag,word)
translation_tag=driver.find_element_by_id('transMachine')
actions.move_to_element(translation_tag)
actions.click()
actions.perform()
WebDriverWait(driver,1000).until(
EC.presence_of_element_located((By.XPATH,'//div[@id="transTarget"]/p/span'))
)
reslut_tag=driver.find_element_by_xpath('//div[@id="transTarget"]/p/span')
print(reslut_tag.text)