Tengo un archivo PHP que responde con una respuesta javascript similar a la siguiente.
var count = 0; var actors = []; var directors = []; var movies = ["7/n/n# L<DxJ", "7x/nx/nxlNTv", "(N/lN/lNUnNTv", "}x/Yx/YxL#llNTv", "}/Y/Y<L<J", "O/u;uiLY<J", "@/J/JNUL<DxJ"]; var hidden = []; var r_space = null; var chars = { "i": "N", "R": "6", "u": "T", "a": "i", "V": "p", ">": "a" }; for (var i in chars) { if (i == ' ') r_space = asta[i]; }Los nombres de las películas se codifican mediante un algoritmo simple que utiliza var chars . Quiero iterar a través de las películas var y obtener todos los valores en una matriz para poder decodificarlos. Intenté usar el siguiente código para dividir por ";" y luego llame a [3] para obtener películas var y luego divídalo por "," para obtener el nombre de cada película y almacenarlo en una matriz, pero el problema es que algunas palabras en las películas var también contienen ";".
var_array = str(response.content.decode()).split(";")[3][14:-1].split(",") for va in var_array: print(va[1:-1])¿Hay alguna forma diferente de obtener todos los valores en películas var en una matriz y luego decodificar? Gracias.
Puede usar una combinación de módulos json y re (regex):
json.loads(re.search("var movies = (?P<movies>\[.+\]);", str(response.content.decode())).group("movies"))Esto dará como resultado:
['7\u200b/n\u200b/n# L<DxJ', '7x\u200b/nx\u200b/nxlNTv', '(N\u200b/lN\u200b/lNUnNTv', '}x\u200b/Yx\u200b/YxL#llNTv', '}\u200b/Y\u200b/Y<L<J', 'O\u200b/u\u200b;uiLY<J', '@\u200b/J\u200b/JNUL<DxJ']Luego, simplemente puede ejecutar un bucle for sobre esta lista.
intente usar la función de JavaScript JSON.parse() para convertir texto en un objeto de JavaScript y luego haga un bucle para obtener el valor de las películas.
let var_array = JSON.parse(películas);
para va en var_array:
console.log(va)