Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: Tachikomaia en 14 Septiembre 2025, 20:56 pm



Título: ¿Cómo elimino lo extra de una lista que quiero copiar?
Publicado por: Tachikomaia en 14 Septiembre 2025, 20:56 pm
https://www.nintendolife.com/games/browse?sort=score&system=nes&genre=action

Quisiera copiar los nombres de los juegos, pero al ir arrastrando el mouse para copiar la lista entera, se copian más cosas.

De lo que se me ocurre lo mejor me parece pegarlo en Excel (de hecho lo quiero ahí) y cada X filas (donde aparezca lo que quiero copiar) poner un número en otra columna, luego ordenar por ese número. El problema es que quizá haya casos en que los juegos estén más abajo o más arriba, o sea que haya distintas filas de diferencia. Busco un método más seguro.


Título: Re: ¿Cómo elimino lo extra de una lista que quiero copiar?
Publicado por: EdePC en 15 Septiembre 2025, 08:52 am
mmm... aparte también está el problema de que las X filas varían XD, creo que lo más fácil es abrir la Consola del Navegador y pegar un Script que extraiga los textos que quieres

Código
  1. var span = document.querySelectorAll("#listing-games span.title")
  2. var txt = ""
  3. for (var el of span) txt += el.textContent + "\n"
  4. console.log(txt)

1. Guarda en la variable span todos los elementos que coincidan con el Selector especificado, en este caso todos los Elementos "span" que tengan la Clase "title" y que estén dentro del Elemento con Id "listing-games"

2. Crea una variable para ir guardando todos los textos de manera legible

3. Un bucle FOR OF que sirve para recorrer cada elemento de la lista de elementos de la línea 1, recoge el contenido de texto del elemento dado y lo guarda en "txt" junto a un salto de línea

4. Imprime el contenido de la variable "txt"

(https://i.postimg.cc/52vPQFjP/games.gif)

Para entender todo lo anterior requieres javascript + HTML DOM, otra forma más fácil sería usar un programa especializado en extracción de datos muy amigable, por ejemplo PowerBI, las nuevas versiones son horrendamente pesadas y obviamente no serán compatibles con Windows 7, si mal no recuerdo las nuevas versiones de Excel también pueden extraer datos de páginas web pero me parece que tampoco está a tu disposición XD.

Pienso que una versión viejita de PowerBI que justo acabo de probar en un Windows 7 virtual te puede servir, espero que tengas tu Windows 7 actualizado o PowerBI te va a dar problemas, aunque te avisa si falta algo o puedes comentar por acá si manda algún error

fimTymxWP4Y

Power BI 2.83.5894.961 32-bit julio de 2020
https://web.archive.org/web/20210310063750_/https://download.microsoft.com/download/8/8/0/880BCA75-79DD-466A-927D-1ABF1F5454B0/PBIDesktopSetup-2020-12.exe


Si te pide Internet Explorer 9 mejor instalas el 11, porque yo grabé el video con el 9 y no se ve muy bonita la interfaz, luego probé con el 11 y si se ve mejor, me refiero a esto:

(https://i.postimg.cc/t4Q56f9H/2025-09-15-015124.png)

IE 11 para Windows 7 de 32-bit
https://www.microsoft.com/es-ES/download/details.aspx?id=40902

IE 11 para Windows 7 de 64-bit
https://www.microsoft.com/es-ES/download/details.aspx?id=40901


Título: Re: ¿Cómo elimino lo extra de una lista que quiero copiar?
Publicado por: Mr.Byte en 15 Septiembre 2025, 16:21 pm
Hazlo por IA, yo he utilizado Copilot:
Citar
🎮 Mejores juegos de acción para NES
Puntuación 10/10

Super Mario Bros. 3

Mega Man 2

Puntuación 9/10


Mega Man 3

Castlevania III: Dracula's Curse

Super Mario Bros.

Puntuación 8/10


Blazing Rangers

EarthBound Beginnings

The Mysterious Murasame Castle

Kirby's Adventure

Mega Man 4

Mega Man 5

Gargoyle's Quest II: The Demon Darkness

S.C.A.T.: Special Cybernetic Attack Team

Ninja Gaiden II: The Dark Sword of Chaos

Little Ninja Brothers

Ninja Gaiden

Super Mario Bros. 2

Blaster Master

Castlevania

BurgerTime

Duck Hunt

Puntuación 7/10

VS. Excitebike

Mega Man 6

Ninja Gaiden III: The Ancient Ship of Doom

Shadow of the Ninja

Super C

Mega Man

Adventure Island

Ghosts 'n Goblins

Puntuación 6/10

Flying Warriors

Mappy-Land

Kung-Fu Heroes

Kid Icarus

Puntuación 5/10

Pac-Land

Flying Dragon: The Secret Scroll

The Adventures of Bayou Billy

Rampage

Puntuación 3/10

Spelunker

Teenage Mutant Ninja Turtles

Puntuación 1/10

Fester's Quest

Además, hay otros títulos sin puntuación visible como:

Little Samson

Kick Master

Vice: Project Doom

Power Blade 2

Star Wars: The Empire Strikes Back

The Young Indiana Jones Chronicles

The Garbage Pail Kids: Mad Mike and the Quest for Stale Gum


Título: Re: ¿Cómo elimino lo extra de una lista que quiero copiar?
Publicado por: Danielㅤ en 16 Septiembre 2025, 00:04 am
Hola, eso para mí era muy fácil lograr, he tenido mucha experiencia en hacer ese tipo de cosas en mis años activo de programador, es decir en extracción específica de datos.
Actualmente no tengo una PC para programar un código en Python pero básicamente el código sería así:

Código
  1. html = """
  2. Aquí todo el código html de la página web
  3. """
  4. nombresJuegos = html.split('<span class="title accent-hover">')[1].split('</span>')[0]
  5. print(nombresJuegos)

Ese código debería imprimir todos los nombres de los juegos, independientemente si son nombres de varias palabras, mostrará en pantalla todos los nombres de los juegos en una lista, lo único que faltaría por hacer -que no me acuerdo como lograrlo- es pasar esa lista a un string donde los nombres estén uno abajo del otro, seria como hacer un splitlines(), por ejemplo:

Adventure Island
Rampage
Power Blade 2
Super Mario Bros. 3

y guardar esos datos en un archivo txt.

Por favor que algún compañero pueda terminar, probar y compartir el código final, se lo agradezco desde ya.


Saludos


Título: Re: ¿Cómo elimino lo extra de una lista que quiero copiar?
Publicado por: EdePC en 18 Septiembre 2025, 01:30 am
No soy muy amigo de Python pero siempre es bueno ejercitarse un poco:

Código
  1. import urllib.request
  2. import re
  3. import os
  4.  
  5. url = 'https://www.nintendolife.com/games/browse?sort=score&system=nes&genre=action'
  6.  
  7. with urllib.request.urlopen(url) as response :
  8.  html = response.read().decode()
  9.  
  10. games = re.findall('<ul class="items cols-4 style-cover">(.*)<nav class="ui-listing-pagination">', html, re.DOTALL)
  11. games = re.findall('<span class="title accent-hover">(.*?)</span>', games[0])
  12.  
  13. with open(os.environ['USERPROFILE'] + '\\Desktop\\games.txt', 'w') as file :
  14.  file.write('\n'.join(games))

Ese código crea en el escritorio un archivo de texto con la lista de juegos, uso dos veces la expresión regular (re) porque a la derecha hay otra lista pero que no entra en el criterio solicitado


Título: Re: ¿Cómo elimino lo extra de una lista que quiero copiar?
Publicado por: Danielㅤ en 18 Septiembre 2025, 02:51 am
Bien, gracias compañero EdePC por el código, sólo agregar que hay que tener un poco de cuidado al ejecutar ese script porque el mismo crea un archivo de texto (txt) en el Escritorio con el nombre games.txt en el caso de que ese archivo no exista, pero si llegaría a existir (que puede darse el caso porque el nombre "games" es muy genérico) lo sobre escribirá, es decir que va a borrar todo el contenido del archivo y en su lugar va a escribir la lista de los nombres de los juegos, habría que hacer una comprobación en el código de que si ese archivo existe, entonces que no lo sobre escriba y lo informe por la consola de Windows.


Título: Re: ¿Cómo elimino lo extra de una lista que quiero copiar?
Publicado por: Tachikomaia en 18 Septiembre 2025, 03:39 am
Por ahora sólo probé el método simple de EdePC, me sirvió.

Aclaro que esa página no es muy completa que digamos.

Me hago mucho lío con los juegos, busco juegos simples, así que miro por año de lanzamiento, pero no son tan simples o fáciles, y algunos son horribles o no de mi gusto.
Otra cosa que hago es mirar los mejores de cada género, pero como las listas puede que estén incompletas...
Esta es mejor por si a alguien le interesa:
https://www.mobygames.com/game/platform:nes/sort:date/page:1/
Copiar es más fácil, sólo se selecciona todo, se copia, se pega, y usando Reemplazar se elimina una palabra que tienen delante.


Título: Re: ¿Cómo elimino lo extra de una lista que quiero copiar?
Publicado por: Tachikomaia en 3 Octubre 2025, 18:43 pm
Hazlo por IA, yo he utilizado Copilot:
Por curiosidad y quizá para otro caso (pues este ya se resolvió): ¿Cuales son los pasos a seguir? O sea, yo uso GPT en Poe y Deepseek ¿sirven? ¿les doy el link y lo hacen?


Título: Re: ¿Cómo elimino lo extra de una lista que quiero copiar?
Publicado por: Danielㅤ en 3 Octubre 2025, 22:39 pm
Por curiosidad y quizá para otro caso (pues este ya se resolvió): ¿Cuales son los pasos a seguir? O sea, yo uso GPT en Poe y Deepseek ¿sirven? ¿les doy el link y lo hacen?

Además del link tenés que darle a la IA el patrón de búsqueda, es decir la regex que debería utilizar para obtener solamente los nombres de los juegos.