Bruno Sarverry
Posted on April 20, 2021
Acortar URL permite simplificar y hacer más atractivo estéticamente un link, como también poder registrar los click que realizan en ellos.
Los códigos QR ayudan a la comodidad del usuario, evitando introducir datos de forma manual en los teléfonos.
La suma de ambos dará como resultado un Código QR lo más reducido en tamaño posible, resultando más atractivo en lo estético, y pudiendo además(gracias a los servicios acortadores de URL) tener información estadística del uso del mismo.
Todo esto, usando uno de los lenguajes de programación de más auge en estos últimos tiempos.
Acortar URL
La manera más fácil y rápida es usando la librería pyshorteners, que pone a disposición muchas APIs acortadoras de URL para usar.
Instalamos directamente de PyPi:
pip install pyshorteners
Aquí una lista de los servicios disponible para acortar las urls, con sus implementaciones respectivas.
Para nuestro ejemplo usaremos da.gd como solución:
import pyshorteners
shortener = pyshorteners.Shortener()
short_url = shortener.dagd.short('https://en.wikipedia.org/wiki/Jon_Snow_(character)')
print(short_url) # https://da.gd/5X3NV
De esta manera reducimos notablemente la cantidad de carácteres, que nos servirá para el siguiente paso.
Generar QR
Nos apoyaremos de las librerías python-qrcode y Pillow(Python Imaging Library) para crear los códigos.
Instalamos directamente de PyPi:
pip install qrcode pillow
Y aplicamos:
import qrcode
qr = qrcode.QRCode(
box_size=5,
error_correction = qrcode.constants.ERROR_CORRECT_M,
)
qr.add_data('https://da.gd/5X3NV')
qr.make(fit=True)
img = qr.make_image()
img.show()
El parámetro box_size es el tamaño en píxeles de cada cuadrado del QR.
Con error_correction definimos la corrección de errores para el QR. Hay 4 constantes definidas dentro de la librería de códigos QR (a mayor porcentaje de corrección, posiblemente dimensiones más grande del QR):
- ERROR_CORRECT_L: corrección de errores del 7% o menos.
- ERROR_CORRECT_M(por defecto): corrección de errores del 15% o menos.
- ERROR_CORRECT_Q: corrección de errores del 25% o menos.
- ERROR_CORRECT_H: corrección de errores del 30% o menos.
Definiendo a fit igual a True determina el tamaño del QR automaticamente a partir del valor de entrada en add_data.
Resultado
El producto final(comparándolo con la misma URL sin acortar) es:
Conclusión
Para la experiencia de usuario: a más pequeño un código QR, menos complejo al ojo humano, y visualmente más atractivo.
Por tanto hay que tener en cuenta que:
- a mayor cantidad de carácteres, más grande las dimensiones del código QR;
- a más grande las dimensiones del código QR, más le cuesta al smartphone procesar el contenido a escanear.
Podemos también tener estadísticas de interés sobre las reacciones/escanéos del código QR que hicimos, a partir de la función de contabilización de clicks al enlace que ofrece algunos servicios, por ejemplo bit.ly.
import pyshorteners
shortener = pyshorteners.Shortener(api_key='YOUR_KEY')
shortener.bitly.total_clicks('https://bit.ly/TEST')
Posted on April 20, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.