Python的第一个实用小程序--IDE下翻译

Python 2.7
IDE Pycharm 5.0.3

花了一点时间,半抄半写半修改的写了第一个能用的python小程序,作用是在IDE端模拟有道词典的访问,效果如下图所示,不足之处在于,当输入的中英文字符串超过一定数量,会抛出中间代码,新手并不知道怎么处理,望知道的不吝赐教;
Python的第一个实用小程序--IDE下翻译_第1张图片
代码贴如下所示

# -*- 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了,在如下代码后

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秒钟再进行操作

即可限定访问时间。

你可能感兴趣的:(python,ide,utf-8,有道词典)