Bing Translator Python using Sublime Text



我可以知道是否有解决方案可以更改我的代码,以便将网站从马来语翻译成英语,但使用 Bing 翻译器代替。

import pandas
import urllib.request as ur
from bs4 import BeautifulSoup
from googletrans import Translator
translator = Translator()
url = "http://https://www.bharian.com.my/"
page = ur.urlopen(url)
df = pandas.DataFrame(columns=["Title", "Date", "Url", "Content"])
soup = BeautifulSoup(page, "html.parser")
headlines = soup.find_all("div", {"class": "ms-vb itx"})
intro = soup.find_all("div", {"class": "ms-rtestate-field"})
dates = soup.find_all("td", {"class": "ms-vb2"})
count = len(headlines)
for i in range(0, len(headlines)):
s = str(headlines[i].a.string)
url1 = headlines[i].a.get("href")
page1 = ur.urlopen(url1)
soup1 = BeautifulSoup(page1, "html.parser")
cont = soup1.find_all("div", {"style": "text-align:justify;"})
content = intro[2 * i].p.text
for data in cont:
content += data.text
content = translator.translate(content, src="ms", dest="en").text
s = translator.translate(s, src="ms").text
df = df.append(
{
"Title": s,
"Date": dates[i].string,
"Url": url1,
"Content": content,
},
ignore_index=True,
)
df.to_csv("News.csv")
# f.write(str(len(result))+'n')
# for res in result:
#   f.write(str(res.pre.string))
# f.close()
# while(driver.current_url == url):
#   continue

是的,有,但你可能不太喜欢它。现在看起来您正在使用 PyPi 的googletrans库 - https://pypi.org/project/googletrans/。Bing翻译存在一个外观相似的软件包,称为bing_translator,但是看起来这个软件包已经过时了。但是,Microsoft自己已经在GitHub上发布了代码示例:

import os, requests, uuid, json
key_var_name = 'TRANSLATOR_TEXT_SUBSCRIPTION_KEY'
if not key_var_name in os.environ:
raise Exception('Please set/export the environment variable: {}'.format(key_var_name))
subscription_key = os.environ[key_var_name]
endpoint_var_name = 'TRANSLATOR_TEXT_ENDPOINT'
if not endpoint_var_name in os.environ:
raise Exception('Please set/export the environment variable: {}'.format(endpoint_var_name))
endpoint = os.environ[endpoint_var_name]
# If you encounter any issues with the base_url or path, make sure
# that you are using the latest endpoint: https://learn.microsoft.com/azure/cognitive-services/translator/reference/v3-0-translate
path = '/translate?api-version=3.0'
params = '&to=de&to=it'
constructed_url = endpoint + path + params
headers = {
'Ocp-Apim-Subscription-Key': subscription_key,
'Content-type': 'application/json',
'X-ClientTraceId': str(uuid.uuid4())
}
# You can pass more than one object in body.
body = [{
'text' : 'Hello World!'
}]
request = requests.post(constructed_url, headers=headers, json=body)
response = request.json()
print(json.dumps(response, sort_keys=True, indent=4, separators=(',', ': ')))

您可能已经注意到,这比您漂亮的googletrans软件包要笨重得多。您可能希望创建自己的抽象层以使其更容易(并可能将其发布在PyPi上!

TRANSLATOR_TEXT_SUBSCRIPTION_KEYTRANSLATOR_TEXT_ENDPONT应使用翻译服务终结点和订阅密钥填写。虽然谷歌似乎很乐意让你自由使用他们的API,但Microsoft希望你创建一个帐户。虽然看起来您可以获得免费密钥,但取决于您使用它的目的Microsoft可能会期望付款。github页面上的链接应该会带您到相关文章。

最新更新