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)

上面最关键的是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

当调用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翻译脚本的详细介绍。

当前标题:Python翻译脚本如何实现语言翻译
分享路径:http://www.shufengxianlan.com/qtweb/news36/450886.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联