banner

Уникализация шаблонов

Уникализация происходит за счет генерации уникальных стилей для дивов шаблона. Полезность такого метода сомнительна, но всё же. Основываясь на этом примере, можно придумать другие методы уникализации.

#coding:utf-8
#Author: Rushter
#Site: http://klipner.ru
from BeautifulSoup import BeautifulSoup
import random
# Функция генерации стиля
def getstyle():
    # Всевозможные параметры css
    params = ["font-size: %spx;"%(random.randint(10,11)),
              "color:#%s;"%(random.randint(0, 16777215)),
              "clear:%s;"%(random.choice(["none","left","right","both","inherit"])),
              "float:%s;"%(random.choice(["none","left","right","both","inherit"])),
              "font-weight:%s;"%(random.choice(["bold","bolder","lighter","normal","100","200","300","400"]))
              ]
    # Перемешиваем 
    random.shuffle(params)
    # Возращаем случаное кол-во параметров стиля
    return "".join(params[0:random.randint(0,len(params)-1)])
# Открываем шаблон
templ = open("html.html").read().decode("utf-8","ignore")
soup = BeautifulSoup(templ)
# Находим все дивы в шаблое
div_list = soup("div")
# Проходим все дивы
for div in div_list:
    # Если у текущего дива нет параметра style, то идём дальше
    if not div.has_key("style"):
        # Случайно выбираем генерировать или нет стиль для дива
        if random.randint(0,1)==0:
            # Генерируем стиль
            div["style"]=getstyle()
# Приводим код шаблона к красивому виду
templ = soup.prettify()
# Сохраняем шаблон
open("out.html",'w').write(templ)
  • http://blozix.kiev.ua/ DeXtR

    Тоже была такая идея – случайно уникализировать шаблоны, спасибо, за пояснения исходного кода