<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                一般進行js有兩種方式: 1. 利用 js2py 這類模塊來執行相關的js代碼,獲取相關參數; 2. 分析js的解析規則后使用純python代碼來實現這個規則。 下面根據有道翻譯的js解析規則,使用純python代碼模擬有道翻譯在瀏覽器上的請求。 <br/> 分析: 1. 發起請求的url ![](https://img.kancloud.cn/ef/91/ef915608c7c0ad0f1fd9a885862a2d70_1820x280.jpg) <br/> 2. 發起請求需要的數據 ![](https://img.kancloud.cn/6a/36/6a364a7f2931b165d86a0ecc57a64649_1329x418.jpg) 根據多次的分析,發現`salt`、`sign`、`lts`是動態變化的,需要我們找出這3個參數的計算規則。 <br/> 3. 根據分析,這`salt`、`sign`、`lts`3個參數的生成規則都是在`fanyi.min.js`文件中進行計算。 ![](https://img.kancloud.cn/5e/34/5e34aaca2252e86c27884c7fb2b33502_1312x127.jpg) <br/> 4. 到`fanyi.min.js`中尋找生成上面四個參數的規則,根據分析,得出的計算規則如下: ```js var r = function(e) { var t = n.md5(navigator.appVersion) , r = "" + (new Date).getTime() , i = r + parseInt(10 * Math.random(), 10); return { ts: r, // 根據分析,lts就是ts bv: t, salt: i, sign: n.md5("fanyideskweb" + e + i + "Tbh5E8=q6U3EXe+&L[4c@") } }; ``` <br/> 5. Python代碼 ```python """ @Date 2021/4/25 """ import requests import hashlib import time import random class YouDao(object): def __init__(self, word): self.url = 'https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule' self.headers = { 'User-Agent': 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', 'Cookie': 'OUTFOX_SEARCH_USER_ID=313193238@10.108.160.105; JSESSIONID=aaa7ct2Vq099Q_SufJiKx; OUTFOX_SEARCH_USER_ID_NCOO=1372802014.8122625; ___rl__test__cookies=1619355675246', 'Referer': 'https://fanyi.youdao.com/' } self.formData = None self.word = word def generate_formdata(self): """ 生成formData數據 """ # 1. 求出lts ts = str(int(time.time() * 1000)) # 2. 求出salt salt = ts + str(random.randint(0, 9)) # 3. 求出sign tempstr = "fanyideskweb" + self.word + salt + "Tbh5E8=q6U3EXe+&L[4c@" md5 = hashlib.md5() md5.update(tempstr.encode()) sign = md5.hexdigest() self.formData = { 'i': self.word, 'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': salt, 'sign': sign, 'lts': ts, 'bv': 'cda1e53e0c0eb8dd4002cefc117fa588', 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_CLICKBUTTION' } def get_data(self): response = requests.post(self.url, data=self.formData, headers=self.headers) data = response.json() # 響應的數據為json類型 print(type(data)) # <class 'dict'> # {'translateResult': [[{'tgt': 'Life is too short to carpe diem', 'src': '人生苦短,及時行樂'}]], 'errorCode': 0, 'type': 'zh-CHS2en'} print(data) # 提取tgt和src信息 tgt = data['translateResult'][0][0]['tgt'] src = data['translateResult'][0][0]['src'] return {'tgt': tgt, 'src': src} def run(self): self.generate_formdata() data = self.get_data() print(data) # {'tgt': 'Life is too short to carpe diem', 'src': '人生苦短,及時行樂'} if __name__ == '__main__': youdao = YouDao("人生苦短,及時行樂") youdao.run() ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看