|
发表于 2022-8-3 19:15:56
|
显示全部楼层
如果你对有道的反爬加密算法感兴趣的话可以看看我之前的有道爬虫代码
- import urllib.request
- import urllib.parse
- import hashlib
- import random
- import time
- import json
- #init
- url = "https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36',
- 'Referer': 'https://fanyi.youdao.com/',
- 'Cookie': 'OUTFOX_SEARCH_USER_ID=1907954952@182.203.147.49; OUTFOX_SEARCH_USER_ID_NCOO=2032702153.1070416; fanyi-ad-id=306808; fanyi-ad-closed=1; ___rl__test__cookies=1654931146702'
- }
- content = input("请输入翻译的内容:")
- #加密
- lts = str(int(time.time()*1000))
- salt = lts + str(random.randint(0,10))
- sign_str = 'fanyideskweb' + content + salt + 'Ygy_4c=r#e#4EX^NUGUc5'
- m = hashlib.md5(sign_str.encode())
- sign = m.hexdigest()
- #配置data
- data = {
- "i":content,
- "from":"AUTO",
- "to":"AUTO",
- "smartresult":"dict",
- "client":"fanyideskweb",
- "salt":salt,
- "sign":sign,
- "lts":lts,
- "bv":"a16a6033635b516a9006542112cdda8f",
- "doctype":"json",
- "version":"2.1",
- "keyfrom":"fanyi.web",
- "action":"FY_BY_CLICKBUTTION"
- }
- #爬虫
- data = urllib.parse.urlencode(data).encode('utf-8')
- request = urllib.request.Request(url,data,headers)
- response = urllib.request.urlopen(request)
- html = response.read().decode('utf-8')
- target = json.loads(html)
- try:
- resalut = target["translateResult"][0][0]["tgt"]
- print("翻译结果:",resalut)
- except:
- print("翻译失败")
复制代码 |
|