1

我编写了一个 python 脚本(仅供个人使用)来使用 linux 上的终端翻译文本。

我试过了:

#!/usr/bin/python
import urllib,urllib2

url="http://translate.google.com/#en|pt|love"
#url="http://www.google.com"
request=urllib2.Request(url)
answer=urllib2.urlopen(request).read()

print "request:\n",request,"\n\n"
print "answer:\n",answer,"\n\n"

但它不起作用。如果我们取消注释该行 #url="http://www.google.com"并评论url="http://translate.google.com/#en|pt|love"所有作品,这是事实。

这很奇怪,因为如果我们url="http://translate.google.com/#en|pt|love"在浏览器中复制并粘贴,该 url 将起作用。

那么,我该如何解决这个问题来捕捉结果呢?

4

2 回答 2

3

您的 URL 包含en|pt|love作为片段的字符串(在 之后#)。片段用于客户端 (JavaScript) 处理。它不会发送到服务器。换句话说,谷歌翻译在你的浏览器中运行的客户端 JavaScript 中完成它的工作或其中的一部分,但当然不是在你的 Python 脚本中。

Google 提供Translate API作为付费服务。

于 2012-06-22T21:19:39.063 回答
2

尝试 Selenium,http: //seleniumhq.org/ 或使用 PyQT webkit

#! /usr/bin/python

import sys
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView
from PyQt4.QtGui import QApplication

app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl("http://translate.google.com/#en|pt|love"))
web.show()
app.exec_()
print web.page().mainFrame().toPlainText().toUtf8()

当你关闭应用程序窗口时,你会看到你想要的

于 2012-06-22T21:29:52.120 回答