¿Cómo puedo seguir registrando datos y guardarlos en listas de python 3 si en algún caso no se lograra llenar una?

=============Registro   print("¿Practica actividades físicas? [S][N]") Act_SN = input(">> ") if Act_SN == "S" or Act_SN == "s":     Cant_ACT_F = 1     print("Cantidad de actividades físicas")     Cant_Act_F = int(input(">> "))     for xcaf in range(Cant_Act_F):         Lista_Act_F.append([])         print("Nombre de actividad que lleva acabo")         Nom_Act = input(">> ")         Lista_Act_F[xcprg].append(Nom_Act) else:     if Act_SN == "N" or Act_SN == "n":         actfn=1     else:         print("Solo puede escoger [S] para sí y [N] para no") print("\n") print("Registro de rendimiento físico") print("Tiempo corriendo[min]") Tm_C = float(input(">> ")) Lista_Tem_Corriendo.append(Tm_C) print("Califiación de tiro con pelota [1-10]") Cal_Tiro_P = int(input(">> ")) Lista_Cal_Tiro.append(Cal_Tiro_P) print("Calificación de comportamiento con su equipo [1-10]") Cal_Comp = int(input(">> ")) Lista_Ev_Comportamento.append(Cal_Comp) 

=========Imprimiendo datos

print("¿Practica actividades físicas? [S][N]") Act_SN = input(">> ") if Act_SN == "S" or Act_SN == "s":     Cant_ACT_F = 1     print("Cantidad de actividades físicas")     Cant_Act_F = int(input(">> "))     for xcaf in range(Cant_Act_F):         Lista_Act_F.append([])         print("Nombre de actividad que lleva acabo")         Nom_Act = input(">> ")         Lista_Act_F[xcprg].append(Nom_Act) else:     if Act_SN == "N" or Act_SN == "n":         actfn=1     else:         print("Solo puede escoger [S] para sí y [N] para no") print("\n") print("Registro de rendimiento físico") print("Tiempo corriendo[min]") Tm_C = float(input(">> ")) Lista_Tem_Corriendo.append(Tm_C) print("Califiación de tiro con pelota [1-10]") Cal_Tiro_P = int(input(">> ")) Lista_Cal_Tiro.append(Cal_Tiro_P) print("Calificación de comportamiento con su equipo [1-10]") Cal_Comp = int(input(">> ")) Lista_Ev_Comportamento.append(Cal_Comp) 

================================================== Lo que pretendo hacer en pocas palabras es que cuando este llenado listas paralelas, no afecte si alguna persona no tiene lo mismo que la segunda, es decir, si una persona si hace deportes pues que le aparezca la opcion de para seguir poniendo sus diferentes deportes que practica, pero en la siguiente vuelta del bucle que si una persona no practica deportes pues que no le aparezca y siga, y al final que haga el listado de todas las personas registradas con sus diferentes gustos de deportes y a los que no, pues que solo aparezca que no lo hacen.

DE verdad agradecería mucho que pudieran ayudarme, ya termine el tema de las listas en python y esta es la única duda que me queda :(, acabo de hacerme la cuenta en esta comunidad con el fin de poder buscar algún ejemplo de esto, pero no e encontrado o igual quizá no busque bien, pero igual. si alguien me puede ayudar se lo agradecería mucho <3.

después de aplicar formulario seguir en la misma pagina

me gustaría saber si existe alguna manera de por ejemplo responder un formulario y que ya aplicado su php o la manera que este lanzando la info siga en la misma pagina. no se si me explique mucho pero saben que tengo una pagina donde una parte de ella es un formulario que inserta en una DB pero me gustaria seguir en la misma pagina ya mencionada, claro que inserte en la DB pero que no me mueva o me mande al archivo en el cual estoy mandando la info ( php )

espero haberme explicado bien y espero que me puedan ayudar

PD ya intente usar include, header Location etc pero no se si haya mas formas de hacer esto

¿Usar Puppeteer para seguir las redirecciones?

Desde hace tiempo necesito una herramienta o funcionalidad que dada una URL inicial me devuelva la última URL del conjunto de redirecciones.

En primera instancia lo había intentado con PHP, pero no funcionaba con las redirecciones JavaScript, así que me recomendaron usar un browser headless.

Me leí la documentación de PhantomJS, lo instalé y lo probé. Resulta que, según comentario de muchos y de pruebas mías, no funcionaba muy bien con las redirecciones así que ahora estoy probando Google Chrome sin cabeza, haciendo uso de Puppeteer.

Mi código actual es el siguiente:

const argv = require('minimist')(process.argv.slice(2)); var url = argv.url; const puppeteer = require('puppeteer'); (async () => {     const browser = await puppeteer.launch({args: ['--disable-setuid-sandbox', '--no-sandbox']});      const page = await browser.newPage();      await page.goto(url);      await page.waitForNavigation({waitUntil: 'load'});      console.log(page.url());      browser.close(); })(); 

Necesito ayuda con lo siguiente:

  • Parece que mi script espera indefinidamente la carga de la página, me gustaría limitarlo a cierto tiempo.

  • ¿Saben si existe una función que determine si la URL que se le está enviando es correcta? (Para evitar que salga un error al enviarle una URL incorrecta).

  • ¿Qué otras mejoras le harían?

Seguir una URL hasta la última y ejecutando código js

¿Qué necesito?

Necesito obtener la última URL, es decir, aquella que no redireccione habiendo pasado por N redirecciones previas (algunas de ellas realizadas por JS). En otras palabras, necesito desarrollar una función que dada una url vaya haciendo redirecciones y que mi código sea capaz de seguirlas independientemente si se hicieron desde apache, php, js u otros.

¿Qué he hecho?

He investigado un montón y he visto muchos ejemplos, sé que hay preguntas relacionadas pero ninguna que involucre javascript, por ende, no he podido solucionar mi problema en su totalidad, sólo parcialmente. ¿Por qué parcialmente? porque hay urls cuyas redirecciones no son hechas a través de javascript, por ende, el código que yo tengo funciona perfectamente con esas urls.

¿Qué código tengo?

    function get_final_url($  url, $  timeout = 5) {     //$  url = str_replace( "&amp;", "&", urldecode(trim($  url)) );     $  cookie = tempnam ("/tmp", "CURLCOOKIE");     $  ch = curl_init();     curl_setopt( $  ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );     curl_setopt( $  ch, CURLOPT_URL, $  url );     curl_setopt( $  ch, CURLOPT_COOKIEJAR, $  cookie );     curl_setopt( $  ch, CURLOPT_FOLLOWLOCATION, true );     curl_setopt( $  ch, CURLOPT_ENCODING, "" );     curl_setopt( $  ch, CURLOPT_RETURNTRANSFER, true );     curl_setopt( $  ch, CURLOPT_AUTOREFERER, true );     curl_setopt( $  ch, CURLOPT_CONNECTTIMEOUT, $  timeout );     curl_setopt( $  ch, CURLOPT_TIMEOUT, $  timeout );     curl_setopt( $  ch, CURLOPT_MAXREDIRS, 10 );     $  content = curl_exec( $  ch );     $  response = curl_getinfo( $  ch );     curl_close ( $  ch );     if ($  response['http_code'] == 301 || $  response['http_code'] == 302)     {         ini_set("user_agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");         $  headers = @get_headers($  response['url']);         if(!$  headers) return $  url;         $  location = "";         foreach($  headers as $  value)         {             if (substr(strtolower($  value), 0, 9) == "location:")                 return get_final_url( trim( substr( $  value, 9, strlen($  value) ) ) );         }     }     if(preg_match("/window\.location\.replace\('(.*)'\)/i", $  content, $  value) || preg_match("/window\.location\=\"(.*)\"/i", $  content, $  value))     {         return get_final_url($  value[1]);     }     else     {         return $  response['url'];     } }