我编写了一个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" all,那么事实就是这样的。
这很奇怪,因为如果我们复制url="http://translate.google.com/#en|pt|love"并将其粘贴到浏览器中,url就会正常工作。
那么,我如何解决这个问题才能捕获结果呢?
发布于 2012-06-23 05:19:39
您的URL包含作为片段(在#之后)的en|pt|love字符串。片段用于客户端(JavaScript)处理。它不会发送到服务器。换句话说,Google Translate在客户端JavaScript中完成其工作或部分工作,客户端Python在浏览器中运行,但当然不是在Python脚本中。
谷歌提供Translate API作为付费服务。
发布于 2012-06-23 05:29:52
尝试使用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()关闭应用程序窗口后,您将看到所需内容
https://stackoverflow.com/questions/11164201
复制相似问题