elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  PYTHON - Script generador de enlace a partir de URL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PYTHON - Script generador de enlace a partir de URL  (Leído 922 veces)
rafaeljoseyepez

Desconectado Desconectado

Mensajes: 18


Ver Perfil
PYTHON - Script generador de enlace a partir de URL
« en: 4 Abril 2020, 19:36 pm »

Buenas muchachos, estoy creando un pequeño script generador de enlaces para un pequeño proyecto, pero tengo ciertos problemas, ya les dejo el código y explico...

Antes les quiero dejar claro que soy nuevo y no soy programador, quería hacer esto y primero pregunté sobre que lenguaje me recomendaban, me decidí por Python, y ahora que comencé a hacerlo tengo las siguientes dudas:

Código
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. import pyperclip
  4. import os
  5.  
  6. def generar():
  7.  while True:
  8.    ID = enlace[47:83]
  9.    RISN = enlace[94:101]
  10.    enlace = input("Introduce tu enlace: ")
  11.  
  12. enlace = int(input("Introduce el numero de opcion"))
  13.  
  14. if enlace == 1:
  15.  pyperclip.copy("https://www.testlink1.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-arVMfISNyX8JrXmCeJCU")
  16.  generar()
  17. elif enlace == 2:
  18.  pyperclip.copy("https://www.testlink2.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-NAJ8WZR6XD7QVgrXF5wo")
  19.  generar()
  20. elif enlace == 3:
  21.  pyperclip.copy("https://www.testlink3.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-nRnAdKgiU5o2W8eKg5NE")
  22.  generar()
  23. elif enlace == 4:
  24.  pyperclip.copy("https://www.testlink4.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-uMZn75Og4QV0m7f8jZaF")
  25.  generar()
  26. elif enlace == 5:
  27.  pyperclip.copy("https://www.testlink5.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-48BCshoVUnc1fke2KUDU")
  28.  generar()
  29. elif enlace == 6:
  30.  pyperclip.copy("https://www.testlink6.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-tXEY8FstklVEtidUXprl")
  31.  generar()

El código es muy sencillo, el usuario introduce un enlace (que siempre será del mismo formato como este:

Código
  1. https://www.testlink0.es/s/UnnScreen.aspx?SSID=5e6d8acd-fb5d-ca77-0339-ade98384ed7f&SuID=b72747264867&zToken=af416b63-ca8e-4574-a72f-c0a85dda74d1

y leerá del carácter 47 al 83 para obtener la variable ID, y luego leerá del carácter 94 al 101 para obtener la variable RISN, luego el usuario dirá que enlace quiere generar seleccionando el número de enlace, y si selecciona 1 el script tomará la opción 1, y a ese enlace va introducirle las variables extraídas del enlace inicial y así obtendrá el enlace final, hasta acá creo que redacté claro lo que hace, ahora... El problema...

El programa necesito colocarle más de 400 enlaces diferentes, allí en el ejemplo coloqué solamente 6, y sería bien tedioso armar el código con 400 enlaces distintos o más, lo que se me ocurre (y no sé si sea posible), colocar los enlaces en un archivo .txt y decirle a Python que si el usuario selecciona la opción 1 lean en el archivo la línea 1, si selecciona la opción 2, lea en el archivo la opción 2, y así sucesivamente, ¿Es esto posible? ¿o alguna sugerencia para simplificar el código y que sea más fácil colocar el montón de enlaces?


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.849



Ver Perfil
Re: PYTHON - Script generador de enlace a partir de URL
« Respuesta #1 en: 5 Abril 2020, 04:10 am »

Saludos,

- Siempre que reviso el manual oficial de python me regreso bastante desilusionado XD. Muy mal hecho ..., muy trozado, para buscar algo determinado es difícil porque no está completo, hay que ir buscándolo de a trozos en la enrome documentación  :¬¬

- Como referencia me sirven bastante estos libros gratuitos:

Python Programación v3.0 (Escuela Superior Politécnica del Litoral, 2017) [534 páginas]
http://blog.espol.edu.ec/ccpg1001/files/2017/05/PYTHON_PROGRAMACION_V3_0.pdf

Introducción a la programación con Python 3 (2014)
https://openlibra.com/es/book/introduccion-a-la-programacion-con-python-3

- Y en inglés:

Python Notes for Professionals book
https://books.goalkicker.com/PythonBook/

- Como que no encaja bien tu pedido con tu código, a no ser que los rangos no coincidan o que no entiendes que las funciones no se ejecutan solas ...

- Guiándome por tu pedido puedo sugerir el siguiente código:

Código
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. ###########################################################
  5. # El código es muy sencillo, el usuario Introducece un enlace
  6. # (que siempre será del mismo formato como este:
  7. # https://www.testlink0.es/s/UnnScreen.aspx?SSID=5e6d8acd-fb5d-ca77-0339-ade98384ed7f&SuID=b72747264867&zToken=af416b63-ca8e-4574-a72f-c0a85dda74d1
  8.  
  9. enlace = input('Usuario introduce un enlace: ')
  10.  
  11. ###########################################################
  12. # y leerá del carácter 47 al 83 para obtener la variable ID, y luego leerá del
  13. # carácter 94 al 101 para obtener la variable RISN,
  14.  
  15. ID = enlace[47:83]
  16. RISN = enlace[94:101]
  17.  
  18.  
  19. ###########################################################
  20. # luego el usuario dirá que enlace quiere generar seleccionando el número de
  21. # enlace, y si selecciona 1 el script tomará la opción 1,
  22.  
  23. nOpcion = int(input('Usuario introduce numero de opcion: '))
  24.  
  25. fichero = open('enlaces.txt')
  26. for nLinea, linea in enumerate(fichero) :
  27.  if nLinea + 1 == nOpcion :
  28.    break
  29. else :
  30.  print('No existe una opcion ', nOpcion)
  31. fichero.close()
  32.  
  33. ###########################################################
  34. # y a ese enlace va introducirle las variables extraídas del
  35. # enlace inicial y así obtendrá el enlace final
  36.  
  37. linea = linea.strip() # Elimina espacios al inicio y fin y saltos de línea
  38. linea = linea.replace('{ID}', ID)
  39. linea = linea.replace('{RISN}', RISN)
  40. print(linea)

- Si tienes dudas dale una lectura a los libros que puse, o si de verdad apenas estás tocando python puedes leerte tutoriales introductorios amenos como:

De 0 a Python (Kenkeiras, 2011) [18 páginas]
https://openlibra.com/es/book/de-0-a-python

El Tutorial de Python 3 (Python Argentina, 2017) [111 páginas]
http://docs.python.org.ar/tutorial/pdfs/TutorialPython3.pdf

-- Y luego se te serán más digeribles los libros o manuales más detallados, porque la ayuda que ofrece el propio python es bastante confusa y desconcertante :xD, sugiero tenerlo para consulta detallada sobre el lenguaje. Todos los artilugios que he utilizado las encuentras en el libro de Python Argentina, 2017 y también en el de 534 páginas por supuesto, tenlos a mano.

- Si estás trabajando en Linux puede que también te sirva:

Python para Principiantes (Eugenia Bahit, 2012)
https://openlibra.com/es/book/python-para-principiantes


En línea

rafaeljoseyepez

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: PYTHON - Script generador de enlace a partir de URL
« Respuesta #2 en: 7 Abril 2020, 16:19 pm »

Muchas gracias por responder y por compartirme ese código que es exactamente a lo que me refería...

Soy muy novato, déjame entender mejor el código...
- Pide el enlace al usuario
- Extrae de ese enlace el ID y RISN
- Crea una variable llamada nOpcion que dependerá del número de opción que introduzca el usuario para extraer del archivo enlaces.txt el número de línea
- Luego imprime en la pantalla el enlace extrayendo los datos.

y todo en prácticamente 15 líneas y un archivo de texto? :O

me parece increíble!!!!!
Voy a probar el código!

No he podido probar el código bien, al ejecutarlo y colocar el número de opción se cierra.
He intentado usar el while para agregar la función de bucle pero lo que hago es dañar el código, quisiera que al imprimir en la pantalla el resultado al presionar cualquier tecla regrese al inicio donde nuevamente pide introducir el enlace... en python no termino de entender el while, en batch era solamente decirle a través de goto para indicarle hasta donde ir... Acá cuando lo intento el código se daña y deja de funcionar y no abre :(

EDITO: Gracias, ya terminé de hacer todo! quedó todo listo lo que necesitaba partiendo de tu código nuevamente te agradezco, voy a chequear los enlaces que me dejaste, interesante todo y me di cuenta que muy sencillo entender el código, y leyendo aquí y allá se pueden armar lo necesario, seguiré leyendo a ver que tan difícil que en lugar de leer el archivo .txt lo lea desde un directorio en github.
« Última modificación: 7 Abril 2020, 19:11 pm por rafaeljoseyepez » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda Python -script generador numerico-
Scripting
lithium93 2 2,333 Último mensaje 30 Octubre 2010, 00:17 am
por criskapunk
[RETO] Generador de DTD a partir de XML
Programación Visual Basic
Psyke1 4 4,227 Último mensaje 23 Mayo 2012, 20:08 pm
por Psyke1
[AYUDA] Generador de link a partir de cryptograma en batch
Scripting
BALTA00 6 2,070 Último mensaje 31 Marzo 2015, 16:02 pm
por Eleкtro
[PYTHON] Generador de contraseñas a partir de palabras
Scripting
dimineko 2 1,991 Último mensaje 26 Julio 2017, 18:05 pm
por Yidu
MOVIDO: [PYTHON] Generador de contraseñas a partir de palabras
Dudas Generales
Eleкtro 0 1,129 Último mensaje 26 Julio 2017, 17:04 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines