生活随笔
收集整理的這篇文章主要介紹了
爬取有道翻译
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
爬取有道翻譯
1.進入有道翻譯 拿到url
2.然后分析
3.通過url爬取
4,分析fromdata
通過分析發現
salt,sign,lts這三個數據是動態變化的
5.我們就可以構建fromdata
通過分析發現r是時間戳,i是r+0,9的隨機數
sign是hash加密(“fanyideskweb” + 我們輸入框輸入的字符串 + 就是上面的i + “Y2FYu%TNSbMCxc3t2u^XT”)
6.代碼如下
"""
@Time : 2021/9/23 15:17
@Auth : 顏
@File :python解析有道翻譯.py
@IDE :PyCharm
"""
import requests
import time
import hashlib
import random
import json
class YouDao(object):def __init__(self
, word
):self
.url
= 'https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'self
.headers
= {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/93.0.4577.82 Safari/537.36 ","Cookie": "OUTFOX_SEARCH_USER_ID=467129664@10.169.0.102; JSESSIONID=aaaejjt9lMzrAgeDsHrWx; ""OUTFOX_SEARCH_USER_ID_NCOO=1850118475.9388125; ___rl__test__cookies=1632381536261","Referer": "https://fanyi.youdao.com/"}self
.fromdata
= Noneself
.word
= word
def generate_data(self
):ts
= str(int(time
.time
() * 1000))salt
= ts
+ str(random
.randint
(0, 9))temp
= "fanyideskweb" + self
.word
+ salt
+ "Y2FYu%TNSbMCxc3t2u^XT"md5
= hashlib
.md5
()md5
.update
(temp
.encode
())sign
= md5
.hexdigest
()self
.fromdata
= {"i": self
.word
,"from": "AUTO","to": "AUTO","smartresult": "dict","client": "fanyideskweb","salt": salt
,"sign": sign
,"lts": ts
,"bv": "5f70acd84d315e3a3e7e05f2a4744dfa","doctype": "json","version": "2.1","keyfrom": "fanyi.web","action": "FY_BY_REALTlME",}def get_data(self
):response
= requests
.post
(self
.url
, data
=self
.fromdata
, headers
=self
.headers
)return response
.content
def parse_data(self
, data_list
):data
= json
.loads
(data_list
)print(data
['translateResult'][0][0]['tgt'])def run(self
):self
.generate_data
()data
= self
.get_data
()self
.parse_data
(data
)if __name__
== '__main__':words
= input('請輸入你需要翻譯的內容:')youdao
= YouDao
(words
)youdao
.run
()
總結
以上是生活随笔為你收集整理的爬取有道翻译的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。