Código de Python - Poner tags de html en las urls de un texto

Imágen de perfil
Val: 2.172
Oro
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Poner tags de html en las urls de un textográfica de visualizaciones


Python

Publicado el 28 de Abril del 2016 por Xve (285 códigos)
2.098 visualizaciones desde el 28 de Abril del 2016
Este código convierte las urls (http://www.lawebdelprogramador.com) de un texto en enlaces html (<a href="http://www.lawebdelprogramador.com">http://www.lawebdelprogramador.com</a>) para poder mostrar en una pagina web.

Requerimientos

paquete validators (pip install validators)

Versión 1.0

Publicado el 28 de Abril del 2016gráfica de visualizaciones de la versión: Versión 1.0
2.099 visualizaciones desde el 28 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Considero que el código no es muy óptimo, pero no he encontrado una mejor manera de realizarlo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# -*- coding: UTF-8 -*-
 
#
# hay que instalar validators!!!
#
# pip install validators
#
 
import validators
import re
 
def ponerTagsEnUrls(text):
	GRUBER_URLINTEXT_PAT = re.compile(ur'(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))')

	# buscamos todos los dominios
	domains=[mgroups[0] for mgroups in GRUBER_URLINTEXT_PAT.findall(text) if validators.url(mgroups[0])]
	
	# eliminamos duplicados
	domains=list(set(domains))
	
	# ordenamos descendente
	domains.sort(reverse=True)
	
	# separamos la cadena por espacios creando una lista
	testList=text.split()
	
	# recorremos cada una de las palabras
	for i in range(len(testList)):
		
		# recorremos cada uno de los dominios
		for domain in domains:
			
			# si se encuentra el dominio en la palabra
			if testList[i].find(domain)>=0:
				
				# reemplazamos el dominio por el dominio con el tag html
				testList[i]=testList[i].replace(domain,"<a href='%s'>%s</a>" % (domain,domain))
				break

	# devolvemos la cadena modificada
	return " ".join(testList)
	
textoDePrueba = 'Mira en la direccion http://example.com, hasta aqui:http://example.com. ahi encontraras lo que buscas... sino, seguro que en http://www... o http://www.lawebdelprogramador.com lo encuentras... tambien puedes mirar en los foros: http://www.lawebdelprogramador.com/foros/ de dicha web'
 
print ponerTagsEnUrls(textoDePrueba)



Comentarios sobre la versión: Versión 1.0 (0)


No hay comentarios
 

Comentar la versión: Versión 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3518