2012-04-26 31 views
7

Deseo traducir la palabra con la petición Ajax al traductor Google si uso rizo, que willl como:Cómo obtener y analizar la respuesta JSON del traductor Google

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

Pero no puedo utilizar secuencias de comandos del lado del servidor con consultas porque serán del mismo IP
Pero no puedo usar la solicitud JSONP también, porque no está permitido, creo. Aquí está la respuesta del servidor:

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

Y no puedo cargar el contenido de iframe

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

porque el tipo de contenido de la respuesta es "text/javascript" y el navegador downloads a file

PS. No puedo descifrar el contenido con la función php json_decode() o con jquery.ajax porque la respuesta json está dañada. Puede probar aquí http://json.parser.online.fr/

Dame un consejo, por favor

+0

sugerencia: (a) compre una licencia para un servicio de traducción que le permita usar "la misma IP". O (b) no hagas traducciones. Los límites que google coloca en el servicio de traducción están ahí por una razón. Parece que estás buscando una manera de superar esos límites. No hagas eso. – Cheeso

+7

oh, dios. Es un experimento, no quiero comprar millones de licencias de consulta para un experimento de un día. – Shara

+0

¿Por qué le traes a Dios? Si se trata de un experimento, entonces no necesita preocuparse por el mismo problema de ip. – Cheeso

Respuesta

12

Probar:

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

si el parámetro cliente es otra cosa que no sea 't' devuelve datos JSON válidos. Por supuesto, siempre puede transformar la variable de retorno 't' en una matriz válida o JSON, pero esto es más fácil.

+0

¡Gracias, puromonogatari! Hice esto con la forma de transformación, pero gracias por la primera solución – Shara

+1

NP, debería tener en cuenta que tuve algunos problemas para enviar caracteres ... No pude encontrar el motivo, pero por alguna razón enviar entidades HTML funciona bien " & x281 "por ejemplo, sin el"; ", inténtelo si tiene algún problema de codificación. – puromonogatari

+2

Y comenzó a usar captcha – Toolkit

2

Asegúrese de agregar el param del encabezado "User-Agent" = "Mozilla/4.0". Google agrega captcha si no lo hace

Cuestiones relacionadas