Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import sys
- import lxml
- from lxml.html.clean import Cleaner
- __author__ = 'Ramil'
- class HtmlParser:
- """ штука, для превращения html документ в подобие plain_text-а """
- #кортеж специальных тэгов(нужен для автоматизации)
- #порядок имеет значение
- special_tags = ( "nobr" )
- @staticmethod
- def parse_html(path):
- """ производит парсинг html странички, находящийся по адресу path, и возвращает словарь в формате
- удобном для класса Indextor, т.е {[тэг][весь текст в документе, который находился в окружение этого тэга]} """
- html = lxml.html.parse( path ).getroot()
- """ clean_html очищает html от всякой дряни типа комментов, мета-данных,
- скриптов и т.д. Учитывая, что в индексации нам они вообще не понадобятся, мы их сразу выкинем.
- из всех возможных выкидываний мы оставим только структуру, чтобы было хоть какая-то
- подобие древовидной структуры"""
- cleaner = Cleaner(style=True, page_structure=False )
- cleaned_html = cleaner.clean_html( html )
- result = dict()
- #получаем текст по тэгам, весь оставшийся тэг записываетя по тэгом simple
- f = open(r'1.txt', 'w')
- txt1 = html.xpath('/html/body/div/div[12]/div/div[3]/div/form/table[2]/tbody/tr/td[2]/a/nobr')
- tag_content_text = list()
- for element in txt1:
- text = element.text_content().strip()
- if text != "":
- tag_content_text.append( text )
- f.write( '\r\n' + text.encode('utf-8'))
- # for tag in HtmlParser.special_tags:
- # #список полученных строк находящихся между тэгом tag
- # tag_content_text = list()
- # for element in cleaned_html.findall(".//" + tag):
- # text = element.text_content().strip()
- # if text != "":
- # tag_content_text.append( text )
- # f.write( text.encode('utf-8'))
- # # не уверен, что это правильно, но пусть пока будет
- # element.drop_tree()
- f.close()
- return cleaned_html
Add Comment
Please, Sign In to add comment