首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何捕捉谷歌翻译的结果(个人使用)?旧的技术不再有效

如何捕捉谷歌翻译的结果(个人使用)?旧的技术不再有效
EN

Stack Overflow用户
提问于 2012-06-23 05:12:18
回答 2查看 641关注 0票数 1

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

我试过了:

代码语言:javascript
复制
#!/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就会正常工作。

那么,我如何解决这个问题才能捕获结果呢?

EN

回答 2

Stack Overflow用户

发布于 2012-06-23 05:19:39

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

谷歌提供Translate API作为付费服务。

票数 3
EN

Stack Overflow用户

发布于 2012-06-23 05:29:52

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

代码语言:javascript
复制
#! /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()

关闭应用程序窗口后,您将看到所需内容

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11164201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档