validar son sirve regulares regular que python3 para metacaracter las fechas expresiones expresion cualquier caracter python html regex tags

son - Eliminar etiquetas html de un texto utilizando Expresión regular en python



que son las expresiones regulares en python (2)

import re patjunk = re.compile("<.*?>|&nbsp;|&amp;",re.DOTALL|re.M) url="http://www.yahoo.com" def test(url,pat): html = urllib2.urlopen(url).read() return pat.sub("",html) print test(url,patjunk)

Estoy tratando de ver un archivo html y eliminar todas las etiquetas para que solo quede el texto, pero estoy teniendo un problema con mi expresión regular. Esto es lo que tengo hasta ahora.

import urllib.request, re def test(url): html = str(urllib.request.urlopen(url).read()) print(re.findall(''<[/w///./w]*>'',html))

¡El html es una página simple con algunos enlaces y texto, pero mi expresión regular no se recuperará! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // EN" y ''a href = "...." etiquetas. ¿Alguien puede explicar lo que necesito cambiar en mi expresión regular?


Use BeautifulSoup . Use lxml No use expresiones regulares para analizar HTML.

Editar 2010-01-29: Este sería un punto de partida razonable para lxml:

from lxml.html import fromstring from lxml.html.clean import Cleaner import requests url = "https://.com/questions/2165943/removing-html-tags-from-a-text-using-regular-expression-in-python" html = requests.get(url).text doc = fromstring(html) tags = [''h1'',''h2'',''h3'',''h4'',''h5'',''h6'', ''div'', ''span'', ''img'', ''area'', ''map''] args = {''meta'':False, ''safe_attrs_only'':False, ''page_structure'':False, ''scripts'':True, ''style'':True, ''links'':True, ''remove_tags'':tags} cleaner = Cleaner(**args) path = ''/html/body'' body = doc.xpath(path)[0] print cleaner.clean_html(body).text_content().encode(''ascii'', ''ignore'')

Desea el contenido, por lo que presumiblemente no desea ningún javascript o CSS. Además, presumiblemente solo desea el contenido del cuerpo y no el HTML de la cabeza. Lea en lxml.html.clean para ver qué puede quitar fácilmente. Más inteligente que las expresiones regulares, ¿no?

Además, ten cuidado con los problemas de codificación Unicode. Puede terminar fácilmente con HTML que no puede imprimir.

2012-11-08: se cambió del uso de urllib2 a las solicitudes . Solo usa solicitudes!