您的位置:首页 > 编程语言 > Python开发

python3.2调用google翻译

2013-09-05 19:18 92 查看
原文使用python2.6:

修改在python3.2下测试成功

#coding=utf-8

__author__ = "zhangshy"

__date__ = "$Date: 2013/09/05$"

import re

import urllib.request

import urllib.parse

def translate(text):

    '''

    模拟浏览器的行为,向Google Translate的主页发送数据,然后抓取翻译结果

    '''

    #text 输入要翻译的英文句子  

    text_1=text  

    #'langpair':'en'|'zh-CN'从英语到简体中文  

    values = {'hl':'zh-CN','ie':'UTF-8','text':text_1,'langpair':"'en'|'zh-CN'"}

    url = 'http://translate.google.cn/translate_t'

    data = urllib.parse.urlencode(values)

    data = data.encode('utf-8')

    req = urllib.request.Request(url)

    #模拟一个浏览器  

    browser='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)'  

    req.add_header('User-Agent',browser)

    #向谷歌翻译发送请求

    response = urllib.request.urlopen(req, data)

    #读取返回页面

    html = response.read().decode('utf-8')

#    print (html)

    #从返回页面中过滤出翻译后的文本  

    #使用正则表达式匹配  

    #翻译后的文本是'TRANSLATED_TEXT='等号后面的内容  

    #.*? non-greedy or minimal fashion  

    #(?<=...)Matches if the current position in the string is preceded  

    #by a match for ... that ends at the current position

    pattern = re.compile(r"(?<=TRANSLATED_TEXT=).*?;")

    m = pattern.search(html)

    text_2 = m.group(0).strip(';')

    return text_2

if __name__ == "__main__":

    text_1 = 'Hello. Nice to meet you'

    print ('The input text: {0}'.format(text_1))

    text_2 = translate(text_1).strip("'")

    print ('The output text:{0}'.format(text_2))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python