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

  •                    python : 3.7.0
  •                           OS : Ubuntu 18.04.1 LTS
  •                          IDE : PyCharm 2018.2.4
  •                      conda : 4.5.11
  •            type setting : Markdown

code

"""
@Author : 行初心
@Date   : 18-9-24
@Blog   : www.cnblogs.com/xingchuxin
@GitHub : github.com/GratefulHeartCoder
"""
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

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


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

猜你喜欢

转载自www.cnblogs.com/xingchuxin/p/9703206.html