python 3.X urllib工具库初体验——CMD模式有道翻译
来源:互联网 发布:windows bat关闭窗口 编辑:程序博客网 时间:2024/06/10 12:35
磨磨蹭蹭的学习着python,今天终于开始接触Python自带的urllib工具库,感谢小甲鱼的Python教程,跟着一步一步做下来,终于感受到Python在网络方面的简洁性,把代码和效果放上来共享,给与我一样的菜菜鸟们一个参考。
import urllib.requestimport urllib.parseimport json#in_str = ' 'while True: print("================================") print("---------------Python版有道翻译----------------") print("================================") in_str = str(input("请输入要翻译的中/英文,离开请输入(por_ext):")) if in_str == 'por_ext': print("已退出!") break url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=dict2.index' data = {} data['type'] = 'AUTO' data['i'] = in_str 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') response = urllib.request.urlopen(url, data) html = response.read().decode('utf-8') #print(html) target = json.loads(html) tgt_str = target['translateResult'][0][0]['tgt'] src_str = target['translateResult'][0][0]['src'] if 'smartResult' in target: smart_result = target['smartResult']['entries'] print("您输入的是:%s" % src_str) print("翻译结果为:%s" % tgt_str) if 'smartResult' in target: print("智能详解为:") for each_value in smart_result: if each_value != '': print(each_value)
效果如下:
如果仅仅是加了点格式就没意思了,如果心细的人会发现,代码中target所代表的的字典中,根据你输入的翻译内容,字典本身的键值对项目组成也会发生改变。
例子:
输入hello后,target字典组成如下:
{"type":"EN2ZH_CN","errorCode":0,"elapsedTime":0,"translateResult":[[{"src":"hello","tgt":"你好"}]],"smartResult":{"type":1,"entries":["","n. 表示问候, 惊奇或唤起注意时的用语","int. 喂;哈罗","n. (Hello)人名;(法)埃洛"]}}
随便输入个poillaw(乱输入的,没这个单词),没修改前会报错:
检查反馈的target你会看到返回的字典内容组成发生变化:
{"type":"EN2ZH_CN","errorCode":0,"elapsedTime":110,"translateResult":[[{"src":"poillaw","tgt":"poillaw"}]],"typoResult":["<b>pillow<\/b>"]}
在“translateResult”键值的下一个“smartResult”键值不见了,变成了“typoResult”。
我并没有去看有道官方的说明文档,那么猜测至少“translateResult”键值对及其之前的内容应该是不变的,那么我如果要在shell里面输出“smartResult”键值对信息前,就需要对其进行检测。
检测分两处,第一处是在smart_Result变量的赋值前用if X in X 语句确定成员是否存在。第二处是在打印语句前增加检测,并在确定可以打印后,去除可能出现的空白内容。
我用的版本是Python 3.6,有兴趣的新手可以试着运行一下看看,欢迎各位的板砖。
0 0
- python 3.X urllib工具库初体验——CMD模式有道翻译
- Linux Mint (应用软件— 翻译工具:有道词典)
- Python——urllib库
- python爬虫01:urllib初体验
- python有道翻译
- Python实现有道翻译
- Python:有道翻译
- Python 3.x中的urllib的改动
- python爬虫(10)身边的翻译专家——获取有道翻译结果
- Python 标准库 —— urllib/urllib2
- python库——urllib学习
- Python API 翻译-urllib模块
- 有道词典Python模拟翻译
- python爬虫04--有道翻译
- 安卓开发—使用有道翻译
- python——urllib模块
- python——urllib模块
- python学习——urllib
- WKWebView的使用
- Elasticsearch 5.2 增删改查
- Qt程序打包发布方法(使用官方提供的windeployqt工具)
- 嵌入式Linux使用Busybox init进程启动过程分析
- Android——ListView,Toast,dialog小细节
- python 3.X urllib工具库初体验——CMD模式有道翻译
- poj1488 字符串处理
- 1097. Deduplication on a Linked List (25)
- 样式化加载失败的图片
- poj1258 最小生成树,prim
- [HNOI2013]切糕
- Curling 2.0 POJ
- poj 1230 贪心法
- JS切换显示隐藏内容