python - 使用 google translate 从 python 脚本翻译 url

标签 python google-translate

我正在尝试使用来自 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/

相关文章:

python - Python 中的插入排序

Python - for循环退出 'prematurely'

proxy - 谷歌翻译如何作为代理工作?

javascript - JS - 修改谷歌翻译的书签

python - python 中具有多个循环和 if 语句的列表理解

python - Django通过外键查询订单(反方向)

Python 在告诉它不要打印后打印不需要的字母

c - 使用 google translate 翻译基于 printf 的字符串

java - 在 Android 应用程序中使用谷歌翻译

javascript - 谷歌翻译获取当前语言