7

我想将带有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]],[["hello",4,,,""],["hello",5 ,[["привет",1000,1,0],["Здравствуй",0,1,0],["Здравствуйте",0,1,0],["Hello",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”并且浏览器下载了一个文件

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

请给我一个建议

4

2 回答 2

13

尝试:

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

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

于 2012-05-10T03:45:04.280 回答
2

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

于 2015-06-02T22:12:13.963 回答