2016-11-03 3 views
1

У меня есть необработанные HTML-файлы, и я удаляю тег сценария.python Как идентифицировать блок html содержат текст?

Я хочу идентифицировать в DOM элементы блока (например, <h1> <p> <div> и т. Д., А не <a> <em> <b> и т. Д.) И заключить их в теги <div>.

Есть ли простой способ сделать это в python? есть библиотека в питона, чтобы идентифицировать блочный элемент

Благодаря

UPDATE

на самом деле я хочу, чтобы извлечь документ HTML. Мне нужно идентифицировать блоки, содержащие текст. Для каждого текстового элемента я должен найти его ближайший родительский элемент, который отображается как блок. После этого для каждого блока я извлечу функцию, такую ​​как размер и посылка блока.

+2

Посмотрите 'beautifulsoup' https://www.crummy.com/software/BeautifulSoup/bs4/doc/ –

+1

любая достойная поисковая система предоставит вам ответ на этот вопрос ... – jojo

+0

вы должны принять ответ, если было полезно – jojo

ответ

1

Вы должны использовать что-то вроде Beautiful Soup или HTMLParser.

Посмотрите на свои документы: Beautiful Soup или HTMLParser.

Вы должны найти то, что ищете. Если вы не можете заставить его работать, попробуйте задать более конкретный вопрос.

Вот простой пример того, как вы простудитесь. Скажем, «данные» является сырым содержание сайта, то вы можете:

soup = BeautifulSoup(data) # you may need to add from_encoding="utf-8"or so 

Затем вы можете пройти по дереву в поисках конкретного узла и к чему-то с ним. Вы можете использовать Fct так:

def walker(soup): 
    if soup.name is not None: 
     for child in soup.children: 
      # do stuff with the node 
      print ':'.join([str(child.name), str(type(child))]) 
      walker(child) 

Примечания: код от this great tutorial.

+0

Я обновляю вопрос спасибо! –

+0

Вы смотрели прекрасный суп? Я обновлю свой ответ ссылкой на учебник о том, как вы можете проанализировать дерево DOM. – dendragon

+0

@ KimHyesung любая удача с этим? – dendragon

Смежные вопросы