.htm ドキュメントがあります。text_content() を使用して、ドキュメントからテキストを抽出しました。ここにテキストがあります:
'PART II \xa0\r\n会社\x92 の普通株式は店頭市場で取引されており、NASDAQ グローバル セレクト マーケットでは \r\nAAPL のシンボルで、フランクフルト証券取引所では APCD のシンボルで取引されています。 . 普通株式の価格範囲 以下に示す普通株式の 1 株あたりの価格範囲は、直近 2 年間の各四半期における NASDAQ グローバル セレクト マーケットにおける当社の\x92 の普通株式\r\nの最高および最低販売価格を表しています。\xa0\r\n株主 2009 年 10 月\xa016 の時点で、記録上の株主は 30,573 人でした。配当\r\n 当社は、2009 年または 2008 年に現金配当を宣言または支払いませんでした。当社は、予見可能な\r\n将来にわたって、事業運営に使用するために収益を留保すると予想しています。発行者および関連会社による株式証券の購入\r\n購入者 なし。\xa0\r\n 33 '
このテキストでは、空白行が前後にある見出しを削除する必要があります。したがって、次の形式の行は削除する必要があります。
\n
some text here\n
\n
ドキュメントの .txt バージョンに対してそれを行うコードがあります。しかし、.htm ドキュメントから、単語を大文字にするために \xa0\r\n のような奇妙なものが使用されていることに気付きました (たとえば)。これらをすべて削除して、見出しだけを正しく削除する方法はありますか?
見出しを削除する関数は次のとおりです。
def clean_text_passage(a_text_string):
"""REMOVE /n: take a list of strings (some passage of text)
and remove noise which is defined as lines that are preceded
by a blank line and followed by a blank line that is lines of
this form will not be in the output
\n
some text here\n
\n
"""
new_passage=[]
p=[line+'\n' for line in a_text_string.split('\n')]
passage = [w.lower().replace('</b>\n', '\n') for w in p]
if len(passage[0].strip())>0:
if len(passage[1].strip())>0:
new_passage.append(passage[0])
for counter, text_line in enumerate(passage[:-1]):
len_line_before=len(passage[counter-1].strip())
len_line_after=len(passage[counter+1].strip())
if len_line_before==len_line_after==0:
continue
if len(text_line.strip())!=0:
new_passage.append(text_line)
if len(passage[-2].strip())!=0:
if len(passage[-1].strip())!=0:
new_passage.append(passage[-1])
return new_passage
キーは、htm ドキュメントの見出しを識別することだと思います。
お時間をいただき、ありがとうございました。