先去有道官网申请API key,很容易申请到的. 使用方法:输入要翻译的中文或者英语,打印翻译结果,输入quit,程序结束 #!/usr/bin/env python#coding:utf-8#By
Python 2.7
IDE Pycharm 5.0.3
花了一点时间,半抄半写半修改的写了第一个能用的python小程序,作用是在IDE端模拟有道词典的访问,效果如下图所示,不足之处在于,当输入的中英文字符串超过一定数量,会抛出中间代码,新手并不知道怎么处理,望知道的不吝赐教;
代码贴如下所示
# -*- coding: utf-8 -*-
# coding:gbk
import urllib2
import urllib#python2.7才需要两个urllib
import json
while True:
content = raw_input("请输入需要翻译的内容:")
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
data = {}
data['type'] = 'AUTO'
data['i']=content
data['doctype'] = 'json'#轻量级数据结构
data['xmlVersion'] = '1.8'
data['keyfrom'] = 'fanyi.web'
data['ue'] = 'UTF-8'
data['action'] = 'FY_BY_ENTER'
data['typoResult'] = 'true'
data = urllib.urlencode(data).encode('utf-8')
req = urllib2.Request(url)
response = urllib2.urlopen(req, data)
html = response.read().decode('utf-8')
print(html)
target = json.loads(html)
print u"翻译的内容是:"+target['translateResult'][0][0]['tgt']
#必须先转化为Unicode的形式,然后print直接输出会进行转换
当然,如果你想直接先转化成中文字符再输出,也简单,把最后一行代码修改如下:
t1=target['translateResult'][0][0]['tgt'].encode('utf-8')
print "翻译的内容是:"+t1
这里的data字典中的数据根据实际网页中数据为准,可能会不一样,具体操作,点击审查元素。或见小甲鱼54讲。
补充一下,Python如果操作频率太快或者网页限制机器人对此的访问,则需要修改head了,在如下代码后人的每个第一次都有点特别的意义,所以下面这个小程序我把他记录下来做个纪念。 因为要做电子海图显示方面的东西,在相关的论坛上面看到有些大牛说GDAL和PIL结
req = urllib2.Request(url)#生成对象
添加一行代码;
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'),这样就可以伪装成人类啦
当然每个电脑的user都不一样,具体去审查元素查看。
当然也可以添加延时模块
import time#添加延时模块
在最后一行追加
time.sleep(1)#休息1秒钟再进行操作
即可限定访问时间。
1.有道的翻译 网页: www.youdao.com Fig1 Fig2 Fig3 Fig4 再次点击"自动翻译"->选中'Network'->选中'第一项',如下: Fig5 然后显示出如下内容,红框画出的部