分享

Python控制台英汉

 CodeNutter 2016-08-08
  1. # coding=utf-8  
  2. # Filename: trans.py  
  3. # Author: qianghaohao(CodeNutter)  
  4. # Email: codenutter@foxmail.com  
  5. # Program: 控制台电子词典  
  6. #  
  7. import os  
  8. import sys  
  9. import requests  
  10. import random  
  11. import json  
  12. # import chardet   # 第三方模块检查字符串编码,用于调试  
  13. from requests.exceptions import ConnectionError, Timeout  
  14. # os.system('set PYTHONIOENCODING=UTF-8')  
  15. def GetHelp():  
  16.     U''''' 
  17.     GNU trans 1.0 
  18.                By  qianghaohao(CodeNutter) 
  19.     Usage: trans [OPTION]  [statements] 
  20.         --version    版本信息 
  21.         --help       使用帮助 
  22.     Example: trans campus 
  23.              trans  --version 
  24.              trans  --help 
  25.     '''  
  26.     pass  
  27.   
  28. if (len(sys.argv) < 2):  
  29.     print ''''' 
  30.           trans: missing OPTION 
  31.           Usage: trans [OPTION] [statements] 
  32.           Try 'trans --help' for more details! 
  33.           '''  
  34.     sys.exit(1)  
  35. if sys.argv[1].startswith('--'):  
  36.     option = sys.argv[1][2:]  
  37.     if option == 'version':  
  38.         print 'trans: Version 1.0'  
  39.     elif option == 'help':  
  40.         print GetHelp.__doc__  
  41.     else:  
  42.         print ''''' 
  43.               Unknown option! 
  44.               Try 'trans --help' for more options! 
  45.               '''  
  46.         sys.exit(2)  
  47. else:  
  48.     to_be_trans = ' '.join(sys.argv[1:]).decode('GB2312').encode('utf-8')  
  49.   
  50.     # print chardet.detect(to_be_trans)  # 第三方模块检查字符串编码,用于调试  
  51.     # --------有道翻译表单数据--------  
  52.     data={}  
  53.     data['type']='AUTO'  
  54.     data['i']=to_be_trans  
  55.     data['doctype']='json'  
  56.     data['xmlVersion']='1.8'  
  57.     data['keyfrom']='fanyi.web'  
  58.     data['ue']='UTF-8'  
  59.     data['action']='FY_BY_CLICKBUTTON'  
  60.     data['typoResult']='true'  
  61.   
  62.     youdao_url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=dict2.index'  
  63.   
  64.     #  ---------- http报头:用户代理 ----------------  
  65.     USER_AGENTS = (  
  66.         'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0',  
  67.         'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100 101 Firefox/22.0',  
  68.         'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0',  
  69.         ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) '  
  70.          'Chrome/19.0.1084.46 Safari/536.5'),  
  71.         ('Mozilla/5.0 (Windows; Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46'  
  72.          'Safari/536.5')  
  73.     )  
  74.     #  --------- 模拟手工请求:随机切换用户代理 ---------  
  75.     headers = {'User-Agent':random.choice(USER_AGENTS)}  
  76.     try:  
  77.         r = requests.post(youdao_url, timeout=10, headers=headers, data=data)  
  78.     except ConnectionError:  
  79.         print 'Network connection failed!'  
  80.         sys.exit(1)  
  81.     except Timeout:  
  82.         print 'request timeout!'  
  83.         sys.exit(1)  
  84.   
  85.     result = r.json()  
  86.     print result['translateResult'][0][0]['tgt'].encode(sys.stdout.encoding)  
   使用示例(如果感兴趣的朋友可以用pyinstaller工具将py源码转换成exe格式,直接执行,比较方便,在此用解释器执行):

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多