python3爬虫攻略(5):翻译程序打包及代码优化
来源:互联网 发布:大专 云计算与应用技术 编辑:程序博客网 时间:2024/05/18 07:52
上一篇我们写了一个简单的翻译程序,但是大家有没有发现一个bug?
如果一不小心按了回车键会发生什么情况?
如果输入的字符为空的话,下面的if判断程序当然无法执行咯!
解决方法:
while len(query)==0: query=input("请输入想要翻译的句子或单词:")
运行效果:
然后问题又来了,每次翻译过后程序就会自动退出,那么我们该怎么做到我想一直使用就使用,我不想使用就退出了。
这里我们可以在程序结尾提示用户输入,如果输入指定的字符就退出,否则的话就让程序一直进行下去。
这里我们将原来的程序封装成了一个函数,如果想要一直执行就是用递归!
完整代码:
# -*- coding:utf-8 -*-from urllib import request,parseimport jsonimport jsonpathimport sysimport timedef main(): #提交表单需要的三个数据 from1="" to="" query="" ''' query:准备查询的句子 from1:句子是中文还是英文 to:准备翻译成中文还是英文 ''' query=input("请输入想要翻译的句子或单词:") while len(query)==0: query=input("请输入想要翻译的句子或单词:") ''' 通过ord判断输入的句子的第一个字符是否是英文 如果输入的是中文,那么则是中文转英文 如果输入的是英文,那么则是英文转中文 ''' if ord(query[0]) not in range(97,123) and ord(query[0]) not in range(65,91): from1="zh" to="en" else: from1="en" to="zh" #提交post表单的地址,从fiddler中得到的 url="http://fanyi.baidu.com/v2transapi" headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"} #表单数据 data={ "from":from1, "to":to, "query":query, "transtype":"realtime", "simple_means_flag":3 } #处理成url编码 data = parse.urlencode(data).encode('utf-8') req = request.Request(url, headers=headers, data=data) html = request.urlopen(req).read().decode("utf-8") #把json对象转换成python对象 jsonobj=json.loads(html) #从根节点开始匹配,分别匹配到data和dst节点 data=jsonpath.jsonpath(jsonobj,"$..data..dst") print("翻译结果:%s"%data[0]) time.sleep(1) #判断程序是否结束 command=input("\n想要结束请输入Q/q:\n按回车键继续………………\n") if command=="Q" or command=="q": print("谢谢你的使用!") sys.exit() #如果没有结束则开始递归 else: main()if __name__ == '__main__': main()
运行效果
最后在暴力一点,将程序打包成exe可执行文件。
这里需要使用pyinstaller,不会的老铁们,可以参考我的另一篇文章:http://blog.csdn.net/katyusha1/article/details/78373394
pyinstaller的安装与使用
好了直接放大招,cmd进入到py文件所在的位置,执行pyinstaller -F xxx.py
程序运行效果
(ps1:如果生成文件不能执行的话,先使用 pyinstaller -d xxx.py 看一看dist文件夹中的debug情况,然后在生成打包好的可执行程序)
(ps2:数字公司会对我们的这个程序进行不友好的对待,至于为什么我也很想知道……)
阅读全文
0 0
- python3爬虫攻略(5):翻译程序打包及代码优化
- python3爬虫攻略(4):简单的翻译程序
- python3爬虫攻略(7):爬虫案例
- Python3 爬虫快速入门攻略
- python3爬虫攻略(1):urllib.request使用(1)
- python3爬虫攻略(2):urllib.request(2)
- python3爬虫攻略(3):利用Fidder抓包!
- python3爬虫攻略(9):requests的使用
- 打包python程序(win7(64) +python3.5 + pyqt5 + multiprocess)
- python3写爬虫程序时,遇到的问题及解决方法
- Python3.5.1 百度翻译代码
- 简单Python3爬虫程序(5)进阶:知乎网的登录与用户相关信息爬取
- 为编写网络爬虫程序安装Python3.5
- 利用pyinstaller打包python3程序
- 简单Python3爬虫程序(3)进阶:登录、解压缩、cookies
- Python3爬虫学习笔记(3.正则详解及实例)
- 爬虫攻略(一)
- Windows下使用pyinstaller打包python3.5程序(从安装开始)
- catboost sklearn 遇到的报错问题
- (二)WebView实践之代码交互
- Java基础Day06
- jQuery ajax
- Vue组件中data选项为什么必须是函数
- python3爬虫攻略(5):翻译程序打包及代码优化
- python文件读写
- 读书笔记之口渴之前先挖井
- 全球最大语音识别公司Nuance的浮沉史(上)衰落篇
- 本周锋评:日本程序员是不是都神似堺雅人?
- 苹果人工智能不行?你被它的表象骗了
- PRICAI 2016 论文精选 | 基于隐含回复的群组聊天话题检测
- androidstudio3.0使用butterknife报错解决
- caffe中各语言预处理对应方式