2017-01-09 7 views
2

似たような質問をたくさん読んだことがありますが、データのクリーンアップで得られるすべての問題の解決策は見つかりませんでした。どのようにユニコード特殊文字、HTMLマークアップ、jsから文字列をきれいにする - 純粋なテキストと句読点を残して - Pythonで?

私は、一連のウェブサイトをクロールし、ページの本文から特定のテキストブロックを取得するスクリプトを用意しています。

問題テキストにはまだHTMLマークアップのようなものがありますが、引用符のための別の記号( '悪い場合でも悪い場合もあります)、& ampのようなものなどです。

今は自分のクリーンアップ機能でテキストを解析していますが、完璧ではなく、まだいくつかのケースがありません。

これらのケースのすべてから文字列をクリーンアップし、「変換済み」などの文字を含むパッケージまたは一般的な方法があるのだろうか?

+0

は例 –

答えて

1

HTMLParserモジュールを使用できます。 HTMLParser輸入HTMLParserから のpython 3で

class MLStripper(HTMLParser): 
def __init__(self): 
    self.reset() 
    self.fed = [] 
def handle_data(self, d): 
    self.fed.append(d) 
def get_data(self): 
    return ''.join(self.fed) 

def strip_tags(html): 
    s = MLStripper() 
    s.feed(html) 
    return s.get_data() 

:pythonの2オン

from html.parser import HTMLParser 

class MLStripper(HTMLParser): 
def __init__(self): 
    self.reset() 
    self.strict = False 
    self.convert_charrefs= True 
    self.fed = [] 
def handle_data(self, d): 
    self.fed.append(d) 
def get_data(self): 
    return ''.join(self.fed) 

def strip_tags(html): 
    s = MLStripper() 
    s.feed(html) 
    return s.get_data() 
+0

を与えるHTMLだけか、また、 "奇妙な" 記号を扱うこのストリップを離れていますか? 私は時々別の文字セットに遭遇し、それに対処する方法がわからないと思います... – GeekSince1982

関連する問題