2016-11-06 2 views
1

Я использую BeautifulSoup для вытягивания текста из html-документа, который затем будет передан в NLTK для некоторого анализа. В файле HTML есть разрывы страниц. Разрывы страниц вызывают разделение непрерывных абзацев.Удаление разрывов страниц с BeautifulSoup

from bs4 import BeautifulSoup 
soup = BeautifulSoup(html, "html5lib") 
txt = (soup.get_text()) 
print(txt) 

Разрезные пункты выглядеть следующим образом:

Документ содержит несколько абзацев. Каждый из пунктов состоит из нескольких

-6-

предложения из слов. Слова составлены из писем.

Мысли о том, как удалить разрыв страницы и иметь полный абзац для того, чтобы сделать это?

+0

поэтому все ваши «разрывы страниц» имеют форму, которую вы описываете в примере? т. е. -page- и затем пучок пустых пространств? – mircealungu

+0

Спасибо за быстрый ответ. Я., они все такие. – ashap

ответ

0

Вы можете использовать следующие регулярные выражения, чтобы удалить из текстовых строк, которые выглядят как: \ п \ п ... -number- \ п \ п ...

import re 
s=re.sub(r'\n+-[0-9]+-\n+', '', txt) 

Позвольте мне знать, если это помогает

+0

Это помогло удалить номер страницы и все пространство, но абзац все еще разделен на две части. Теперь выглядит так: Документ содержит несколько абзацев. Каждый из параграфов состоит из нескольких предложений из слов. Слова составлены из писем. – ashap

+0

Хм. Когда вы говорите «вот так», это выглядит вполне нормально для меня. Я не уверен, в чем проблема :) – mircealungu

+0

Между параграфами остался разрыв строки. Я использовал .strip(), чтобы удалить все пробелы между буквами. Не идеальный, но обходной путь для того, что я пытался сделать. Еще раз спасибо за помощь! Очень признателен! – ashap

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