[python]Google翻译小程序

工程中要用到一个翻译的功能,也就是提交到Google翻译后,获取返回的结果。

首先摸清Google翻译的脉络:

request处理

提交翻译后,查看request和response分别是什么内容:

首先我们得到了提交的URL

url = httl://translate.google.cn/translate_a/t

还有如上的提交表单,分析可知:

sl = source language = en(english)

tl = target language = zh-CN(简体中文)

以及编码方式:utf-8

q = query =”this is a dog”

于是,我们得到我们的post_date

values = {‘client‘: ‘t‘, ‘sl‘: ‘en‘, ‘tl‘: ‘zh-CN‘, ‘hl‘: ‘zh-CN‘, ‘ie‘: ‘UTF-8‘, ‘oe‘: ‘UTF-8‘, ‘prev‘: ‘btn‘,
                 ‘ssel‘: ‘0‘, ‘tsel‘: ‘0‘, ‘q‘: text}

再看头信息:

其中有浏览器一项,不知道是否必要,我们也添加一个浏览器信息:

browser = "Mozilla/5.0 (Windows NT 6.1; WOW64)"

整合上面的信息,得到request

values = {‘client‘: ‘t‘, ‘sl‘: ‘en‘, ‘tl‘: ‘zh-CN‘, ‘hl‘: ‘zh-CN‘, ‘ie‘: ‘UTF-8‘, ‘oe‘: ‘UTF-8‘, ‘prev‘: ‘btn‘,
                 ‘ssel‘: ‘0‘, ‘tsel‘: ‘0‘, ‘q‘: text}
        url = "http://translate.google.cn/translate_a/t"
        data = urllib.urlencode(values)
        req = urllib2.Request(url, data)
        browser = "Mozilla/5.0 (Windows NT 6.1; WOW64)"
        req.add_header(‘User-Agent‘, browser)

再得到页面

response = urllib2.urlopen(req)
        get_page = response.read()

response处理

我们看得到的response是什么信息:

不过这并看不出来,我们提交长句子后,可以知道,Google翻译返回的格式为:(太长不方便写出)

[[[第1句翻译,原文,读音],[第二句翻译,原文,读音],。。。],[其他信息(多义等等)]]

于是,我们通过如下的两步正则表达式匹配,可以得到文本:

text_page = re.search(‘\[\[.*?\]\]‘, get_page).group()
rex = re.compile(r‘\[\".*?\",‘)
re.findall(rex, text_page)

最后,发现文本中还有多余的“等,进一步替换处理:

item = item.replace(‘[‘, "")
item = item.replace(‘",‘, "")
tem = item.replace(‘"‘, "")

最终程序

import re
import urllib
import urllib2

def translate(text):
    """translate English to Chinese"""
    alues = {‘client‘: ‘t‘, ‘sl‘: ‘en‘, ‘tl‘: ‘zh-CN‘, ‘hl‘: ‘zh-CN‘, ‘ie‘: ‘UTF-8‘, ‘oe‘: ‘UTF-8‘, ‘prev‘: ‘btn‘,
                 ‘ssel‘: ‘0‘, ‘tsel‘: ‘0‘, ‘q‘: text}
    url = "http://translate.google.cn/translate_a/t"
    data = urllib.urlencode(values)
    req = urllib2.Request(url, data)
    browser = "Mozilla/5.0 (Windows NT 6.1; WOW64)"
    req.add_header(‘User-Agent‘, browser)
    response = urllib2.urlopen(req)
    get_page = response.read()
    text_page = re.search(‘\[\[.*?\]\]‘, get_page).group()
    text_list = []
    rex = re.compile(r‘\[\".*?\",‘)
    for item in re.findall(rex, text_page):
        item = item.replace(‘[‘, "")
        item = item.replace(‘",‘, "")
        item = item.replace(‘"‘, "")
        text_list.append(item)
    text_result = "".join(text_list)
    return text_result

[python]Google翻译小程序

时间: 2024-10-29 19:08:09

[python]Google翻译小程序的相关文章

案例:用python实现翻译小程序

案例:翻译小程序 #实现一个翻译小程序 #1 可以查询单词 #2 可以自定义补充单词解释 #3 可以删除某个单词 print('欢迎来到大宝dayday见小词典'.center(30,'-')) orig_dict = {'中文':'chinese','代码':'code','字典':'dict','英语':'english'} query = input('请输入你要查询的中文:') # 判断是否存在 if(orig_dict.get('query')): print(f'你查询的中文:{qu

Python 登陆接口小程序V1

Python 登陆接口小程序版本V1 Python #!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'gaogd' import MySQLdb as mysql import datetime class Authon(object):     def __init__(self):         self.db = mysql.connect(user="root", passwd="[email prot

python 发送文本文件小程序!

献上python小程序一枚,不成敬意! #!/usr/bin/python #coding=utf-8 import time import email import smtplib from email.mime.text import MIMEText date=time.strftime('%Y-%m-%d  %H:%M:%S',time.localtime()) sender='[email protected]' receiver='[email protected]' subject

python 协程小程序(草稿有待完善)

#description下面这个小程序就像linux中命tail -f /var/log/messages一样,当运行时可以动态的显示文本文件里的信息哦! import time import sys import os def tail(f): f.seek(0,2) #跳转到文本文件的最后的位置 while True: line = f.readline() if not line: time.sleep(0.1) continue yield line#匹配函数 def grep(line

简单的Python登陆认证小程序

使用Python编写登陆认证小程序.用户连续 3 次输入密码错误即锁定用户. ############# start ############### #!/usr/bin/env python import os import sys # os.system('clear') userfile = file('user_id.txt', 'r+') userlist = [] userdict = {} if os.path.isfile("user_id.txt"): pass el

Python实现翻译小工具

一.背景 利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面. 二.代码 fanyi.py代码如下: #!/bin/env python # -*- coding:utf-8 -*- # _author:kaliarch import requests import urllib.parse import time import random import hashlib import json clas

微信翻译小程序在哪里,如何使用

随着可以的发展,很多小程序都可以代替软件完成一些操作像翻译,不在需要APP直接用小程序就可以了,操作方法简单还能节省手机空间幺!操作方法:1.先把手机连接上网络然后打开微信,在主页的右上角点击方放大镜图标.2.在搜索框里输入需要用到的小程序名称,然后点击对应的小程序进入主页. 3.进入小程序后点击页面下方的提示"请输入你要翻译的文字或短句". 4.这时会出现一个新的页面,在此先输入需要识别的文字后,输入完成后选择需要翻译的语言,然后点击立即翻译. 5.点击立即立即翻译后会出现一个翻译中

python获取微信小程序openid及用户信息

填坑记录:1.个人微信公众订阅号是不能申请微信认证的.公众号的类型在注册时一旦选择就不能更改,微信公众号认证的功能除个人订阅号外,都可以申请认证,因而个人订阅号不能申请认证.这句话的意思就是个人订阅号无法开发小程序. 2.个体户营业执照(个体户)可申请微信服务号并申请开发小程序,但需微信认证复用资质并用新邮箱注册小程序账号 3.微信开发工具创建微信小程序填写的appid是小程序的appid(不是微信公众号的),不能是个人小程序的appid,个人小程序没有获取用户信息的权限 4.调用接口获取用户信

python学习笔记(10)-python第一个小程序hello world

本节点标题1.第一个小程序hello world1.1.python2与python3的hello world1.2.换行的打印 =======================================================================================================================1.第一个小程序hello world1.1.python2与python3的hello world>>> print &q