Python翻译脚本如何实现语言翻译
Python培训,就选光环大数据Python培训机构!
Python翻译脚本是可以进行相关语言翻译的。这是一个很有意思的事情。下面我们就详细的来了解下相关的编写流程。希望大家有所收获。今天突然有一个想法,就是想自己写一个翻译脚本。可惜Google提供的API是供网络应用的。
刚好在《dive into python》里面这本书里面看到如何从HTML文档中提取出来自己想要的内容,那这样的话,可不可以模拟浏览器来发送想翻译的句子,然后再接收返回结果后的HTML源码,最后从中提取出翻译的结果呢?
其实是行的,因为利用python可以模拟浏览器的行为,向Google翻译的主页发送想要翻译的句子。下面是具体的代码:
- import urllib,urllib2
- values={'hl':'zh—CN','ie':'utf8','text':text,'langpair':"en|
zh-CN"}- url='http://translate.google.cn/translate_t'
- data = urllib.urlencode(values)
- req = urllib2.Request(url, data)
- req.add_header('User-Agent', "Mozilla/5.0+(compatible;+Googl
ebot/2.1;++http://www.google.com/bot.html)")- response = urllib2.urlopen(req)
上面最关键的是text这个变量,值为想翻译的句子。后面的langpair的值是语言对,这里是英文翻译成简体中文,可以自由改动。下面就要实现一个类来取出我们想要的翻译结果,这个类要从SGMLParser派生出来,SGMLParser是在sgmllib.py中包含的。
- from sgmllib import SGMLParser
- class URLLister(SGMLParser):
- def reset(self):
- SGMLParser.reset(self)
- self.result = []
- self.open = False
- def start_div(self, attrs):
- id = [v for k, v in attrs if k=='id']
- if 'result_box' in id:
- self.open = True
- def handle_data(self, text):
- if self.open:
- self.result.append(text)
- self.open = False
当调用feed方法时,就会寻找开始标记为div的片段,当找到时,它会调用一个自身内部的方法,其实最终也就是调用到start_div跟handle_data这两个方法来找出我们想要的翻译结果,具体的就不说了。下面是完整的代码:
- import urllib,urllib2
- from sgmllib import SGMLParser
- class URLLister(SGMLParser):
- def reset(self):
- SGMLParser.reset(self)
- self.result = []
- self.open = False
- def start_div(self, attrs):
- id = [v for k, v in attrs if k=='id']
- if 'result_box' in id:
- self.open = True
- def handle_data(self, text):
- if self.open:
- self.result.append(text)
- self.open = False
- while True:
- text = raw_input("请输入要翻译的英文(退出输入q):")
- if text=='q':
- break;
- values={'hl':'zh-CN','ie':'utf8','text':text,'langpair':
"en|zh-CN"}- url='http://translate.google.cn/translate_t'
- data = urllib.urlencode(values)
- req = urllib2.Request(url, data)
- req.add_header('User-Agent', "Mozilla/5.0+(compatible;+Googleb
ot/2.1;++http://www.google.com/bot.html)")- response = urllib2.urlopen(req)
- parser = URLLister()
- parser.feed(response.read())
- parser.close()
- print "翻译结果:"
- for i in parser.result:
- i = unicode(i,'utf-8').encode('gbk');
- print i
以上就是对Python翻译脚本的详细介绍。
Python培训,就选光环大数据Python培训机构!
大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服!