from lxml.html.clean import clean_html, Cleaner
def clean(text):
try:
cleaner = Cleaner(scripts=True, embedded=True, meta=True, page_structure=True, links=True, style=True,
remove_tags = ['a', 'li', 'td'])
print (len(cleaner.clean_html(text))- len(text))
return cleaner.clean_html(text)
except:
print 'Error in clean_html'
print sys.exc_info()
return text
Я собрал вышеупомянутый (уродливый) код, когда мои первые набеги на землю питона. Я пытаюсь использовать lxml cleaner, чтобы очистить пару html-страниц, так что, в конце концов, я просто остался с текстом и ничем иным - но, как я мог, вышеприведенное, похоже, не работает как таковое, я до сих пор осталось небольшое количество разметки (и, похоже, она не повреждена в формате html), и в частности ссылки, которые не удаляются, несмотря на аргументы, которые я использую в remove_tags
и links=True
есть идеи, что происходит, возможно, я неправильно лаю дерево с помощью lxml? я думал, что это способ пойти с разбором HTML в Python?