python基础学习1-翻译程序(连接到有道翻译网)

#!/usr/bin/env python
# -*- coding:utf-8 -*- 爬虫程序
import urllib.request#导入 网络连接模块
import  urllib.parse #导入网络数据转换模块
import json
import time

def trans(content) :
    #设置为有道翻译的翻译请求地址
    url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=dict2.index"

    head={}
    #设置 用户头代理为人工访问 避免机器访问被网站过滤掉
    head["User-Agent"]="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
    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_CLICKBUTTON"
    data["typoResult"]="true"
    #把添加好传送数据的字典转换成 网络数据格式
    data = urllib.parse.urlencode(data).encode('utf-8')
    #定义用于传送的request对象
    req=urllib.request.Request(url,data,head)
    #执行网络请求
    response = urllib.request.urlopen(req)
    #把接收到的翻译结果 用utf-8反编译 得到一个json格式字符串
    html = response.read().decode('utf-8')
    #print(html)
    #载入得到的json字符串
    r= json.loads(html)
    #print(r)
    #print(r["translateResult"])
    #输出其中翻译的结果字段
    print("翻译结果:%s" %r['translateResult'][0][0]["tgt"])


while True:
    content= input("请输入需要翻译的文本!\n(退出请输入quit)\n")
    if content != "" and content!="quit":
      trans(content)
      time.sleep(5)#设置5秒休眠 防止访问网站过快 被过滤掉
    elif content=="" :
        pass
    else:
        print("goodby!")

 

posted @ 2016-08-30 17:45  whzym111  阅读(300)  评论(0编辑  收藏  举报