【问题标题】:How to get and parse json answer from google translate如何从谷歌翻译中获取和解析 json 答案
【发布时间】:2012-05-07 05:47:14
【问题描述】:

我想将带有 ajax 请求的单词翻译成谷歌翻译 如果我使用 curl,它会是这样的:

curl_init("http://translate.google.com/translate_a/t?client=t&text=hello&sl=en&tl=ru");

但我不能在查询中使用服务器端脚本,因为它们将来自同一个 IP
但我也不能使用 JSONP 请求,因为我认为这是不允许的。这是服务器响应:

[[["привет","hello","privet",""]],[["",["Алло","Здравствуйте."]],["имя существительное",["приветствие" ,"приветственный возглас","возглас удивления"]],["глагол",["здороваться","звать","окликать"]],["междометие",["привет","адрав"твет","адрав"тволлей ]]],"en",,[["привет",[5],1,0,1000,0,1,0]],[["你好",4,,,""],["你好",5,[["привет",1000,1,0],["Здравствуй",0,1,0],["Здравствуйте",0,1,0],["你好",0,1, 0]],[[0,5]],"你好"]],,,[["en"]],13]

我无法将内容加载到 iframe

<iframe src="http://translate.google.com/translate_a/t?client=t&text=hello&sl=en&tl=ru"></iframe>

因为响应内容类型是“text/javascript”和浏览器downloads a file

PS。我无法使用 php 函数 json_decode() 或 jquery.ajax 解码内容,因为响应 json 已损坏。你可以在这里测试http://json.parser.online.fr/

请给我一个建议

【问题讨论】:

  • 建议:(a) 购买允许您使用“相同 IP”的翻译服务的许可证。或者 (b) 不做翻译。谷歌对翻译服务的限制是有原因的。看来您正在寻找绕过这些限制的方法。不要那样做。
  • 哦,天哪。这是实验,我不想为一日实验购买百万查询许可证。
  • 你为什么要把上帝带进去?如果这是一个实验,那么你不必担心同样的 ip 问题。
  • Cheeso,我谈到了技术问题。不是道德的或伦理的。我也解决不了,你能吗?

标签: ajax json iframe google-translate


【解决方案1】:

试试:

http://translate.google.com/translate_a/t?client=p

如果客户端参数不是“t”,则返回有效的 JSON 数据。当然,您始终可以将“t”返回变量转换为有效的数组或 JSON,但这更容易。

【讨论】:

  • 谢谢你,puromonogatari!我用变换的方式做了这个,但感谢第一个解决方案
  • NP,应该注意的是,虽然我在向它发送字符时遇到了一些麻烦......我找不到原因,但由于某种原因发送 HTML 实体可以正常工作“&x281”例如,没有“;”,如果您有任何编码问题,请尝试。
  • 它开始使用验证码
  • 这似乎不再起作用了。现在响应总是一个空字符串。请问您是怎么​​知道这件事的?谢谢
【解决方案2】:

确保添加标头参数“User-Agent”=“Mozilla/4.0”。如果您不这样做,Google 会添加验证码

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多