Python翻译脚本如何实现语言翻译

开发 后端
使用Python翻译脚本是可以进行语言翻译的,这实现起来不是很困难,下面就是相关代码的编写流程。希望大家能够有所收获。

Python翻译脚本是可以进行相关语言翻译的。这是一个很有意思的事情。下面我们就详细的来了解下相关的编写流程。希望大家有所收获。今天突然有一个想法,就是想自己写一个翻译脚本。可惜Google提供的API是供网络应用的。

刚好在《dive into python》里面这本书里面看到如何从HTML文档中提取出来自己想要的内容,那这样的话,可不可以模拟浏览器来发送想翻译的句子,然后再接收返回结果后的HTML源码,***从中提取出翻译的结果呢?  

其实是行的,因为利用python可以模拟浏览器的行为,向Google翻译的主页发送想要翻译的句子。下面是具体的代码:

  1. import urllib,urllib2  
  2. values={'hl':'zh—CN','ie':'utf8','text':text,'langpair':"en|
    zh-CN"}  
  3. url='http://translate.google.cn/translate_t' 
  4. data = urllib.urlencode(values)  
  5. req = urllib2.Request(url, data)  
  6. req.add_header('User-Agent', "Mozilla/5.0+(compatible;+Googl
    ebot/2.1;++http://www.google.com/bot.html)")  
  7. response = urllib2.urlopen(req)  
  8.  

 

上面最关键的是text这个变量,值为想翻译的句子。后面的langpair的值是语言对,这里是英文翻译成简体中文,可以自由改动。下面就要实现一个类来取出我们想要的翻译结果,这个类要从SGMLParser派生出来,SGMLParser是在sgmllib.py中包含的。

  1. from sgmllib import SGMLParser  
  2. class URLLister(SGMLParser):  
  3. def reset(self):  
  4. SGMLParser.reset(self)  
  5. self.result = []  
  6. self.open = False 
  7. def start_div(self, attrs):  
  8. id = [v for k, v in attrs if k=='id']  
  9. if 'result_box' in id:  
  10. self.open = True 
  11. def handle_data(self, text):  
  12. if self.open:  
  13. self.result.append(text)  
  14. self.open = False 
  15.  

 

当调用feed方法时,就会寻找开始标记为div的片段,当找到时,它会调用一个自身内部的方法,其实最终也就是调用到start_div跟handle_data这两个方法来找出我们想要的翻译结果,具体的就不说了。下面是完整的代码:

  1. import urllib,urllib2  
  2. from sgmllib import SGMLParser  
  3. class URLLister(SGMLParser):  
  4. def reset(self):  
  5. SGMLParser.reset(self)  
  6. self.result = []  
  7. self.open = False 
  8. def start_div(self, attrs):  
  9. id = [v for k, v in attrs if k=='id']  
  10. if 'result_box' in id:  
  11. self.open = True 
  12. def handle_data(self, text):  
  13. if self.open:  
  14. self.result.append(text)  
  15. self.open = False 
  16. while True:  
  17. text = raw_input("请输入要翻译的英文(退出输入q):")  
  18. if text=='q':  
  19. break;  
  20. values={'hl':'zh-CN','ie':'utf8','text':text,'langpair':
    "en|zh-CN"}  
  21. url='http://translate.google.cn/translate_t' 
  22. data = urllib.urlencode(values)  
  23. req = urllib2.Request(url, data)  
  24. req.add_header('User-Agent', "Mozilla/5.0+(compatible;+Googleb
    ot/2.1;++http://www.google.com/bot.html)")  
  25. response = urllib2.urlopen(req)  
  26. parser = URLLister()  
  27. parser.feed(response.read())  
  28. parser.close()  
  29. print "翻译结果:"  
  30. for i in parser.result:  
  31. i = unicode(i,'utf-8').encode('gbk');  
  32. print i 

以上就是对Python翻译脚本的详细介绍。

【编辑推荐】

  1. Python脚本解决在游戏开发中的困难
  2. 简述Python语言经验总结
  3. Python全局变量的隐藏“窍门”
  4. Python文件路径具体操作方法经典讲解
  5. Python优化图片实际操作技巧浅析
责任编辑:张浩 来源: 互联网
相关推荐

2020-10-11 22:05:22

机器翻译谷歌AI

2024-02-06 17:57:06

Go语言任务

2011-09-15 10:26:08

2020-10-21 15:24:42

阿里AI翻译

2020-06-04 09:22:46

谷歌AI翻译

2023-04-13 08:37:58

ChatGPTDIVHTML

2022-08-30 09:00:00

人工智能智能技术机器学习

2011-11-23 15:20:11

API

2022-07-07 12:38:58

PlatformsMetaNLLB-200

2011-11-25 09:09:22

jQuery

2013-03-19 13:57:01

WebKit前端

2020-04-27 10:37:53

机器翻译脑机接口脑波

2021-09-15 20:20:00

AI

2020-04-06 09:15:43

谷歌翻译工具

2021-08-26 15:05:01

微软翻译文言文微软亚洲研究院

2017-03-30 15:40:46

编程语言翻译家

2012-05-17 13:40:57

Google翻译

2021-06-01 10:06:59

MozillaFirefox翻译

2021-06-15 05:15:30

DeepL翻译神器应用

2023-06-13 13:45:35

框架语音
点赞
收藏

51CTO技术栈公众号