• Python3基础 访问在线的有道词典


    •        Python : 3.7.0
    •          OS : Ubuntu 18.04.1 LTS
    •         IDE : PyCharm 2018.2.4
    •       Conda : 4.5.11
    •    typesetting : Markdown

    code

    """
    @Author : 行初心
    @Date   : 18-9-24
    @Blog   : www.cnblogs.com/xingchuxin
    @Gitee  : gitee.com/zhichengjiu
    """
    import urllib.request
    import urllib.parse
    import json
    
    
    def main():
        content = input('请输入你想翻译的内容:')
    
        # General-Requst Url
        url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
    
        # From Data
        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'
    
        #                                编码成utf-8格式
        data = urllib.parse.urlencode(data).encode('utf-8')
    
        # 发出请求得到响应,当data不为none,为post状态。否则为get状态
        response = urllib.request.urlopen(url, data)
    
        # html是一个utf-8格式的文件
        result = response.read()
    
        #                 解码成utf-8格式的
        code_utf8 = result.decode('utf-8')
    
        # code_utf8 是json 轻量级的数据交换格式
        print(code_utf8)
    
        # 解析json格式
        print(json.loads(code_utf8))
    
        # 解析json格式,解出来是一个字典
        tagert = json.loads(code_utf8)
        print(type(tagert))
        print(tagert)
    
        # 逐步拆解,获得结果
        print((tagert['translateResult']))
        print((tagert['translateResult'][0]))
        print((tagert['translateResult'][0][0]))
    
        print('你想翻译的内容是:', (tagert['translateResult'][0][0]['src']))
        print('翻译结果是:', (tagert['translateResult'][0][0]['tgt']))
    
    
    if __name__ == '__main__':
        main()
    
    

    result

    /home/coder/anaconda3/envs/py37/bin/python /home/coder/PycharmProjects/basic/demo.py
    请输入你想翻译的内容:你好
                              {"type":"ZH_CN2EN","errorCode":30,"elapsedTime":0,"translateResult":[[{"src":"您的请求来源非法,商业用途使用请关注有道翻译API官方网站u201C有道智云u201D: http://ai.youdao.com","tgt":"您的请求来源非法,商业用途使用请关注有道翻译API官方网站u201C有道智云u201D: http://ai.youdao.com"}]]}
    
    {'type': 'ZH_CN2EN', 'errorCode': 30, 'elapsedTime': 0, 'translateResult': [[{'src': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com', 'tgt': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com'}]]}
    <class 'dict'>
    {'type': 'ZH_CN2EN', 'errorCode': 30, 'elapsedTime': 0, 'translateResult': [[{'src': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com', 'tgt': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com'}]]}
    [[{'src': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com', 'tgt': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com'}]]
    [{'src': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com', 'tgt': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com'}]
    {'src': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com', 'tgt': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com'}
    你想翻译的内容是: 您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com
    翻译结果是: 您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com
    
    Process finished with exit code 0
    
    

    more knowledge

    • 这个代码 注释较多,好好分析。
    • 用这个程序,服务器是可以识别到是python程序来访问的。
    • 学习网络编程的时候,悠着点,好好呆着,服务器要判定是捣乱的,就不让访问了。
    • 从前是可以访问的,如今发生了变化。既然服务器针对这次请求给出了回复,那么就要认真阅读。
    • 欢迎关注有道翻译API官方网站“有道智云”: http://ai.youdao.com

    resource

    • [文档] docs.python.org/3
    • [规范] www.python.org/dev/peps/pep-0008
    • [规范] zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_language_rules
    • [源码] www.python.org/downloads/source
    • [ PEP ] www.python.org/dev/peps
    • [平台] www.cnblogs.com
    • [平台] gitee.com


    Python具有开源、跨平台、解释型、交互式等特性,值得学习。
    Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。
    代码的书写要遵守规范,这样有助于沟通和理解。
    每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。

  • 相关阅读:
    洛谷1894 [USACO4.2]完美的牛栏The Perfect Stall
    洛谷2417 课程
    洛谷2860 [USACO06JAN]冗余路径Redundant Paths
    洛谷1983 车站分级
    BZOJ1178或洛谷3626 [APIO2009]会议中心
    BZOJ1179或洛谷3672 [APIO2009]抢掠计划
    CF Round #516 (Div. 2, by Moscow Team Olympiad)
    洛谷1262 间谍网络
    NOI导刊 2018河南郑州游记
    BZOJ1001或洛谷4001 [BJOI2006]狼抓兔子
  • 原文地址:https://www.cnblogs.com/xingchuxin/p/10425591.html
Copyright © 2020-2023  润新知