我正在尝试使用来自 python 脚本的谷歌翻译:
#!/usr/bin/env python
from urllib2 import urlopen
from urllib import urlencode
base_url = "http://www.google.com/translate?"
params = (('langpair','en|es'), ('u','http://asdf.com'),)
url = base_url+urlencode(params)
print "Encoded URL: %s" % url
print urlopen(url).read()
我在使用它时收到错误 403。
# ./1.py
Encoded URL: http://www.google.com/translate?langpair=en%7Ces&u=http%3A%2F%2Fasdf.com
Traceback (most recent call last):
...
urllib2.HTTPError: HTTP Error 403: Forbidden
但是,当从浏览器访问时,相同的 URL 工作正常。谁能发现错误?还是谷歌不允许这种用法?
提前致谢
最佳答案
如果 Google 不允许您这样做,您可以通过 Google 的 API 以编程方式翻译普通网站的源代码。
不久前我为此写了一个函数:
def translate(text, src = '', to = 'en'):
parameters = ({'langpair': '{0}|{1}'.format(src, to), 'v': '1.0' })
translated = ''
for text in (text[index:index + 4500] for index in range(0, len(text), 4500)):
parameters['q'] = text
response = json.loads(urllib.request.urlopen('http://ajax.googleapis.com/ajax/services/language/translate', data = urllib.parse.urlencode(parameters).encode('utf-8')).read().decode('utf-8'))
try:
translated += response['responseData']['translatedText']
except:
pass
return translated
关于python - 使用 google translate 从 python 脚本翻译 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5871710/