[pyar] script genérico para actualizar archivos html

Fernando Bombo fernando.bombo en gmail.com
Lun Jul 12 16:23:44 ART 2010


El 12 de julio de 2010 15:44, Patricio Molina
<patriciomolina en gmail.com>escribió:

> 2010/7/12 Misael Zapata <misaelzapata en gmail.com>
> >
> > Hola Lista,
> > Hace unos días unos sitios que mantengo fueron infectados por uno de esos
> virus js que están dando vuelta por ahí. Para limpiarlos estaba usando un
> script en bash, pero últimamente tenía ganas de reemplazarlo con algo en
> python.
> > Alguien tiene algo hecho de esto? la idea es insertar o borrar un código
> después de un tag X, o bien ponerle la cadena del "virus" y que lo borre.
> > Desde ya mil gracias,
> > Misael
> > _______________________________________________
> > pyar mailing list pyar en python.org.ar
> > http://listas.python.org.ar/listinfo/pyar
> >
> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> Hola Misael
>
> Personalmente no tengo ningún programa hecho, pero si tuviera que
> escribir algo utilizaría BeautifulSoup[0].
>
> Nos compartís el código del script en bash?
>
> Saludos
>
> [0] http://www.crummy.com/software/BeautifulSoup/
>
> --
> Patricio Molina
> http://patriciomolina.com/
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>


Hace no mucho tiempo me encontré con un problema similar. Seguramente se
debe resolver de una forma más elegante, pero este código a mí me sirvió:



import os, glob, shutil

origen = '/Leyes sin encriptar/a Nuevo/'
origen_2 = '/Leyes\ sin\ encriptar/a\ Nuevo/'
destino = "/Leyes sin encriptar/a Nuevo/html_procesado/"
destino_2 = "/Leyes\ sin\ encriptar/a\ Nuevo/html_procesado/"

for archivo_actual in glob.glob(os.path.join(origen, '*.htm')):
    archivo_entrada = open(archivo_actual,"r")
    archivo_salida = open(archivo_actual + ".1","w")

    print "Archivo Actual: " + archivo_actual
    for linea in archivo_entrada:
        if linea.startswith("<BODY LANG=") or linea.startswith("<body
lang="):
            archivo_salida.write("'<body lang=ES
style='tab-interval:56.7pt;text-justify-trim:punctuation'><!$MG_encabezado>\n'")

        elif linea.endswith('charset=utf-8">\n') or
linea.endswith('charset=utf-8">\n'):
            archivo_salida.write('<meta http-equiv=Content-Type
content="text/html; charset=windows-1252">\n')

        else:
            archivo_salida.write(linea)
archivo_salida.close()

#######################################
for archivo in os.listdir(origen):
    if archivo.endswith(".1"):
        print "Copiando: " + archivo[:-2]
        shutil.copyfile(origen + archivo, destino + archivo[:-2])
os.system('rm '+ origen_2 + '*.1 ')




Basicamente leo línea por línea y reemplazo algunas en base al contenido.
Espero te sirva. Sino, alguien va a dar una mejor solución.

-- 
*  Fernando A. Bombo
  Analista de Sistemas
**  Usuario Linux: 412823
**  Usuario Ubuntu: 953
  http://www.odioawindows.blogspot.com/
  http://sites.google.com/site/fernandobombo/
  http://twitter.com/ferbombo
  http://identi.ca/ferbombo*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100712/edc89c99/attachment.html>


More information about the pyar mailing list