一、运行的效果如下:
二、源码如下:
import requests from bs4 import BeautifulSoup def getHTMLText(url): try: r = requests.get(url, timeout=30) r.raise_for_status() return r.text except: print("Get HTML Text Failed!") return 0 def google_translate_EtoC(to_translate, from_language="en", to_language="ch-CN"): # 根据参数生产提交的网址 base_url = "https://translate.google.cn/m?hl={}&sl={}&ie=UTF-8&q={}" url = base_url.format(to_language, from_language, to_translate) # 获取网页 html = getHTMLText(url) if html: soup = BeautifulSoup(html, "html.parser") # 解析网页得到翻译结果 try: result = soup.find_all("div", {"class": "t0"})[0].text except: print("Translation Failed!") result = "" return result def google_translate_CtoE(to_translate, from_language="ch-CN", to_language="en"): # 根据参数生产提交的网址 base_url = "https://translate.google.cn/m?hl={}&sl={}&ie=UTF-8&q={}" url = base_url.format(to_language, from_language, to_translate) # 获取网页 html = getHTMLText(url) if html: soup = BeautifulSoup(html, "html.parser") # 解析网页得到翻译结果 try: result = soup.find_all("div", {"class": "t0"})[0].text except: print("Translation Failed!") result = "" return result def main(): while True: inp = int(input("Chinese to Englisth is 1, English to Chinese is 2: ")) if inp == 1: words = input("请输入中文: ") print(google_translate_CtoE(words)) else: words = input("Please input English: ") print(google_translate_EtoC(words)) main()
可参考的:
https://github.com/ssut/py-googletrans
https://github.com/terryyin/translate-python
https://github.com/yucongo/mgoogle_translate
updated on July-12-2020
三、写成一个类
import requests import json from bs4 import BeautifulSoup def get_ip(): url = "http://webapi.http.zhimacangku.com/getip?num=1&type=2&pro=&city=0&yys=0&port=1&time=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=4&mr=1®ions=" html = requests.get(url) html = html.text print(html) json_data = json.loads(html) ip_list = [] # print(json_data['data']) for i in json_data['data']: # print("http://"+i['ip']+":"+str(i['port'])) ip = "http://"+i['ip']+":"+str(i['port']) # print("*"*10) ip_list.append(ip) return ip_list proxy_ip = get_ip()[0] proxies = { "http": proxy_ip } class Translate(): def __init__(self, content, proxy): self.content = content self.proxy = proxy def getHTMLText(self,url): try: r = requests.get(url, proxies = self.proxy,timeout=30) print(self.proxy) r.raise_for_status() return r.text except: print("Get HTML Text Failed!") return 0 def get_chinese_conetent(self,from_language="en", to_language="ch-CN"): # 根据参数生产提交的网址 base_url = "https://translate.google.cn/m?hl={}&sl={}&ie=UTF-8&q={}" url = base_url.format(to_language, from_language, self.content) # 获取网页 html = self.getHTMLText(url) if html: soup = BeautifulSoup(html, "html.parser") # 解析网页得到翻译结果 try: result = soup.find_all("div", {"class": "t0"})[0].text except: print("Translation Failed!") result = "" return result def get_english_conetent(self,from_language="ch-CN", to_language="en"): # 根据参数生产提交的网址 base_url = "https://translate.google.cn/m?hl={}&sl={}&ie=UTF-8&q={}" url = base_url.format(to_language, from_language, self.content) # 获取网页 html = self.getHTMLText(url) if html: soup = BeautifulSoup(html, "html.parser") # 解析网页得到翻译结果 try: result = soup.find_all("div", {"class": "t0"})[0].text except: print("Translation Failed!") result = "" return result a = "i love you very much" c = Translate(a, proxies) r = c.get_chinese_conetent() print(r)
用法:
from google_translate import Translate t2 = Translate(a) ch_content = t2.get_chinese_conetent() print(ch_content)
四、注意事项
1.如果英文中有“&”这个符号,会影响翻译,就是到了&就断了,后面的句子不翻译。解决方案:
x= x.replace("&","and") content = content.replace("#","") #这个符号也会造成翻译的问题
五、最新版本
https://github.com/lushan88a/google_trans_new/issues