Encuentre hipervínculos en texto usando Python (relacionados con Twitter)

¿Cómo puedo analizar texto y encontrar todas las instancias de hipervínculos con una cadena? El hipervínculo no estará en el formato html de test sino solo http://test.com

En segundo lugar, me gustaría convertir la cadena original y reemplazar todas las instancias de hipervínculos en hipervínculos html en los que se puede hacer clic.

Encontré un ejemplo en este hilo:

¿La forma más fácil de convertir una URL a un hipervínculo en una cadena de C #?

pero no pudo reproducirlo en python 🙁

Aquí hay un puerto Python de la forma más fácil de convertir una URL a un hipervínculo en una cadena C #. :

 import re myString = "This is my tweet check it out http://tinyurl.com/blah" r = re.compile(r"(http://[^ ]+)") print r.sub(r'\https://stackoverflow.com/questions/720113/find-hyperlinks-in-text-using-python-twitter-related/1', myString) 

Salida:

 This is my tweet check it out http://tinyurl.com/blah 

Aquí hay una expresión regular mucho más sofisticada de 2002.

Django también tiene una solución que no solo usa expresiones regulares. Es django.utils.html.urlize () . Encontré que esto es muy útil, especialmente si está usando django.

También puede extraer el código para usar en su propio proyecto.

Jinja2 (Flask usa esto) tiene un filtro urlize que hace lo mismo.

Docs