python翻译(一)
有道翻译
# -*- coding: UTF-8 -*-
import requests
import time
import random
import hashlib #用于md5加密 '''
有道js加密代码 define("newweb/common/service", ["./utils", "./md5", "./jquery-1.7"], function(e, t) {
var n = e("./jquery-1.7");
e("./utils");
e("./md5");
var r = function(e) {
var t = n.md5(navigator.appVersion)
, r = "" + (new Date).getTime()
, i = r + parseInt(10 * Math.random(), 10);
return {
ts: r,
bv: t,
salt: i,
sign: n.md5("fanyideskweb" + e + i + "Tbh5E8=q6U3EXe+&L[4c@")
}
} '''
'''
需要传入的表单参数
form data
{
i: 你好 ---------要翻译的内容
from: AUTO ---------不变
to: AUTO ---------不变
smartresult: dict ---------不变
client: fanyideskweb ---------不变
salt: 16140794369711 ---------变化,需要从js获取
sign: ebd24f53c35b99b5190d261458569d15 ---------变化,需要从js获取
lts: 1614079436971 ---------变化,需要从js获取
bv: 3da01a09873456cfb5dba05f2124b148 ---------变化,需要从js获取
doctype: json ---------不变
version: 2.1 ---------不变
keyfrom: fanyi.web ---------不变
action: FY_BY_REALTlME ---------不变
} ''' base_url='http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule' header={
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Content-Length': '243',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Cookie': 'OUTFOX_SEARCH_USER_ID=279929001@10.108.160.102; OUTFOX_SEARCH_USER_ID_NCOO=1593630629.8354774; JSESSIONID=aaaasrifKqzfreFp2NoFx; ___rl__test__cookies=1614098943617',
'Host': 'fanyi.youdao.com',
'Origin': 'http://fanyi.youdao.com',
'Referer': 'http://fanyi.youdao.com/',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36',
'X-Requested-With':'XMLHttpRequest',
} #获取md5值
def get_md5(str_data):
temp=hashlib.md5()
temp.update(str_data.encode('utf-8'))
return temp.hexdigest() data={}
#构造函数生产表单参数
def postdata(message): user_agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
data['i']=message
data['from']='AUTO'
data['to']='AUTO'
data['smartresult']='dict'
data['client']='fanyideskweb'
data['doctype']='json'
data['version']='2.1'
data['keyfrom']='fanyi.web'
data['action']='FY_BY_REALTlME'
#获取bv的值,该值为所输入需要翻译内容的dm5值
data['bv']=get_md5(user_agent)
#获取lts值,该值为当前时间秒数
r=str(int(time.time()*1000))#毫秒所以*1000
data['lts']=r
#获取salt值,该值为当前时间秒数加上随机获取的1-10的数字拼接
i=r+str(int(random.randint(1,10)))
data['salt']=i
#获取sign的值
e=message
data['sign']=get_md5("fanyideskweb" + e + i+ "Tbh5E8=q6U3EXe+&L[4c@")
return data message=input('请输入要翻译的单词:')
form_data=postdata(message)
print(form_data) response= requests.post(url=base_url,headers=header,data=form_data)
json_data=response.json()#将获取的信息转换为json格式
'''
{"translateResult":[[{"tgt":"The dog","src":"狗"}]],"errorCode":0,"type":"zh-CHS2en","smartResult":{"entries":["","dog\r\n"],"type":1}} '''
result=json_data['translateResult'][0][0]['tgt']
print('翻译结果为:%s'%result)
python翻译(一)的更多相关文章
- Hacking Secret Ciphers with Python翻译序言
马上就要下班,一直想做点什么,学点什么,但是似乎从未着手. 是的,我想学习Hacking,或许很多人都想学,但是诸多的大牛说,这个得有基础,万丈高楼平地起,我做过那么一点点的密码分析,加上某些地方有小 ...
- python 翻译爬虫
import urllib.request import urllib.parse import json while 1: content=input("请输入要翻译的内容:") ...
- Python - 翻译Talk Python To Me (和我聊Python) 播客
“和我聊Python”是一个美国的聊天播客,英文名Talk Python To Me,类似于喜马拉雅的音频课程节目,只不过这个主题是编程语言Python.该节目从2015年的节目到现在,已经超过256 ...
- Python翻译
translator.py # -*- coding: utf-8 -*- # author: inspurer(月小水长) # pc_type lenovo # create_time: 2019/ ...
- 使用 Python 翻译 CHM 帮助文档
此方法绝对切实可行 翻译成品项目: https://github.com/foyoux/InstallShield2020-Documents 效果预览 安装 docts 库 pip install ...
- 用Python实现一个“百度翻译”
import requests import json s = input("请输入你要翻译的内容:") headers = {"User-Agent":&qu ...
- [编程基础] Python谷歌翻译库googletrans总结
1 使用说明 本文介绍python谷歌翻译库接口googletrans的使用.具体见官方文档: https://py-googletrans.readthedocs.io/en/latest/#goo ...
- PHP 调用Python脚本
上次做用户反馈自动翻译,写了个python脚本,将日文的用户反馈翻译成中文,效果虽然可以,但其它不懂python的童鞋就没法使用了,所以搭了个web服务,让其他人可以通过网页访问查询.使用的是apac ...
- 为什么你写的Python运行的那么慢呢?
大约在一年前,也就是2013年在Waza(地名),Alex Gaynor提到了一个很好的话题:为什么用Python.Ruby和Javascript写的程序总是运行的很慢呢?正如他强调的,关键就是现在出 ...
- 学习Python不得不关注和学习的国外大神博客
注意 : 本文收集于网路 . 由于常常更新 , 有些链接打不开, 请自备梯子 在学习Python过程中,总会遇到各种各样的坑, 虽然Python是一门优美而简单易学的语言 . 但当学习后 , 总想着更 ...
随机推荐
- Centos7部署rsync配合inotify进行系统文件实时备份
转载csdn: Centos7部署rsync配合inotify进行系统文件实时备份_xixixilalalahaha的博客-CSDN博客
- python爬取网页的多种方式以及保存方法
爬取网页信息并保存 bs4和lxml都是用来将接收的数据解析html 1.bs4+excel(openpyxl): import requests from bs4 import BeautifulS ...
- js的map、filter的用法
filter() 创建新数组,新数组放指定数组中符合条件的元素,满足条件的留下,是对原数组的过滤. map() 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,是对原数组的加工,映 ...
- 09 安装虚拟机:Ubuntu Server 20.04
09 安装虚拟机:Ubuntu Server 20.04 9.1 取得安装映像档 9.2 建立虚拟机客体 请至Proxmox VE管理界面点选右上方的[建立VM],来到建立虚拟机客体的引导程序.引导程 ...
- 简单使用wireshark
wireshark抓包工具 拓扑图: 拓扑图解释:终端用户使用wireshark抓包工具监听无线网卡,监听时,终端访问互联网,可实时监听网络抓包 操作步骤: 一,打开wireshark抓包工具,监听网 ...
- 【2】java之object类
一.Object 类的基本定义 Object 类是所有类的父类,最大的一个好处就是:利用 Object 类可以接收所有类的对象(向上自动转型).如果不确定参数类型,使用 Object 类型是最好的 ...
- Qt中的多窗体编程(续二)
四.实现子窗体的按钮功能. 1.在显示时间的子窗体中,有两个默认的按钮,都还没有定义其功能,下面就来定义,无论单击哪个按钮,都将线束时钟显示的线程并关闭窗体. 2.在子窗体的可视化设计界面中,在窗体的 ...
- 00.IDEA的使用
1.IDEA的必备常用快捷键 复制本行到下一行:ctrl D 删除一行代码:ctrl Y 替换文本:ctrl R 根据光标放的位置提供快速修复选择:Alt + Enter 生成返回值:ctrl alt ...
- Word17 学生儿童医保扣款方式更新的通知
1.课程的讲解之前,先来对题目进行分析,首先需要在考生文件夹下,将Wrod素材.docx文件另存为Word.docx,后续操作均基于此文件,否则不得分. 2.这一步非常的简单,打开下载素材文件,在[文 ...
- centos7端口转发工具rinetd
1.下载软件 wget http://li.nux.ro/download/nux/misc/el7/x86_64/rinetd-0.62-9.el7.nux.x86_64.rpm 2.安装软件 yu ...