Разделите HTML от строк в Python

Старые файлы удаляются с помощью Monolog\Handler\RotatingFileHandler::rotate.

Я знаю, что вы используете 5.4, но если вы хотите обновить версию до 5.6 (или выше), вы сможете воспользоваться новыми функциями ведения журнала. Все, что вам нужно сделать, это добавить новый backup канал регистрации в config/logging.php и включить его в stack. Это было бы безусловно самым чистым решением.

Например, чтобы сохранить резервную копию всех журналов critical или выше:

'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['daily', 'backup'],
        'ignore_exceptions' => false,
    ],
    'backup' => [
        'driver' => 'single',
        'path' => storage_path('logs/backup.log'),
        'level' => 'critical',
    ],
254
задан Peter Mortensen 20 July 2013 в 10:38
поделиться

2 ответа

Я всегда использовал эту функцию для удаления тегов HTML, так как для этого требуется только Python stdlib:

На Python 2

from HTMLParser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

Для Python 3

from html.parser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.strict = False
        self.convert_charrefs= True
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

Примечание : это работает только для 3.1. Для версии 3.2 или выше необходимо вызвать функцию родительского класса init . См. Использование HTMLParser в Python 3.2

397
ответ дан 23 November 2019 в 02:47
поделиться

Вы можете использовать другой анализатор HTML (, например, lxml , или Beautiful Soup ) - тот, который предлагает функции для извлечения только текста. Или вы можете запустить регулярное выражение в строке строки, которая удаляет теги. См. http://www.amk.ca/python/howto/regex/ для получения дополнительной информации.

2
ответ дан fish2000 23 November 2019 в 02:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: