【问题标题】:Fetch pages translated by Google? (PHP)获取谷歌翻译的页面? (PHP)
【发布时间】:2010-04-26 19:28:11
【问题描述】:

我有一堆大的 txt 文件(游戏攻略),我需要将它们从英语翻译成法语。我的第一直觉是将它们托管在服务器上并使用 PHP 脚本通过执行 file_get_contents() 和一些 URL 操作来自动翻译过程以获取翻译后的文本。比如:

http://translate.google.com/translate?hl=fr&sl=en&u=http://mysite.com/faq.txt

我发现它带来了两个问题:1) 有框架 2) 框架 src 值是相对的(即 src="/translate_c?...."),所以没有加载。

有没有什么方法可以获取通过谷歌在 PHP 中翻译的页面(不使用他们的 AJAX API,因为它真的不适合这里)?

【问题讨论】:

    标签: php fetch google-translate


    【解决方案1】:

    使用cRL获取结果页面,然后解析。

    【讨论】:

    • 谢谢,但 IFrame 不还是个问题吗?
    • 使用cURL获取上面Chaim发布的url,应该设置好了。这也应该避免 Javascript 的复杂性,因为它只会抓取 HTML。
    • 如果您当时将此作为正确答案,将不胜感激。祝你好运。
    【解决方案2】:

    不要使用带有框架的常规翻译 URL,而是使用框架的 src:

    http://translate.googleusercontent.com/translate_c?hl=<TARGET LANGUAGE>&sl=<SOURCE LANGUAGE>&tl=af&u=http://<URL TO TRANSALTE>&rurl=translate.google.com&twu=1&usg=ALkJrhhxPIf2COh7LOgXGl4jZdEBNutZAg
    

    例如将页面http://chaimchaikin.za.net/从英语翻译成南非荷兰语:

    http://translate.googleusercontent.com/translate_c?hl=en&sl=en&tl=af&u=http://chaimchaikin.za.net/&rurl=translate.google.com&twu=1&usg=ALkJrhhxPIf2COh7LOgXGl4jZdEBNutZAg
    

    这只会打开一个“无框”的翻译页面。

    您可能需要检查和测试以找到所需语言的代码。 另请注意,Google 可能会在翻译中添加脚本(例如在悬停时显示原始文本)。

    编辑:在检查代码时,似乎在翻译之间有 很多 javascript。你可能需要想办法摆脱它。

    编辑:进一步检查表明,结束位“usg=ALkJr...”似乎每次都在变化。也许首先在常规谷歌翻译页面(例如http://translate.google.com/translate?hl=fr&sl=en&u=http://mysite.com/faq.txt)上运行一个请求,而不是查找并解析“usg=..”部分并将其用于“无框架”页面上的下一个请求(http://translate.googleusercontent.com/translate_c?...)。

    【讨论】:

    • 嗨,谢谢,我已经尝试过这样做,但它似乎与框架不一致(它们似乎仍然存在......)。我认为很大程度上取决于最终的密钥(usg)。我现在将尝试这些想法,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 2012-01-26
    • 2020-06-01
    • 2011-06-06
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多