requests 例子:有道翻译

import json

import requests
import time,hashlib,re,random

def youdao():

  url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
  headers = {
    'User-Agent':'...................................................................................................',
    'Referer':'........................................................',
    'Cookie':'.............................................................................................................................................'
    }

  #lts时间戳,正则匹配 .js文件中的计算方式:r = "" + (new Date).getTime() >>>>(new Date).getTime()==str(time.time())
  time_lts = str(time.time())
  regex = re.match('(\d+).(\d+)', time_lts).group(1) + re.match('(\d+).(\d+)', time_lts).group(2)
  lts = regex[0:13]
  #salt .js文件中的计算方式:i = r + parseInt(10 * Math.random(), 10); Math.random():为0-9之间的随机小数(float) 10:十进制
  salt = lts + str(round(random.uniform(0,9)))
  # salt = lts + str(random.randint(0,9))

  e_i = input('请输入:')
  #sign js文件中的计算方式:n.md5("fanyideskweb" + e + i + "]BjuETDhU)zqSxf-=B#7m")
  #n:e("./jquery-1.7");e("./utils");e("./md5"); 这里n用 hashlib代替 hexdigest():产出hash值
  sign = hashlib.md5(("fanyideskweb" + e_i + salt + "]BjuETDhU)zqSxf-=B#7m").encode()).hexdigest()

  data = {
    'i':e_i,
    'from':'AUTO',
    'to':'AUTO',
    'smartresult':'dict',
    'client':'fanyideskweb',

    'salt':salt,
    'sign':sign,
    'lts':lts,

    'bv':'334720d41a1d174718af3a3d58d56f23',
    'doctype':'json',
    'version':'2.1',
    'keyfrom':'fanyi.web',
    'action':'FY_BY_REALTlME',
    }

  response = requests.post(url,data=data,headers=headers)
  res_dict = json.loads(response.content.decode())
  print(res_dict)
  for i in res_dict['smartResult']['entries']:
    print(i)

if __name__ == '__main__':
  youdao()

posted @ 2020-09-24 15:54  Py_beginner  阅读(104)  评论(0编辑  收藏  举报