我一直在閱讀很多關於如何使用python從字符串中刪除所有的html代碼,但沒有一個令人滿意。我需要一種方法來刪除所有標記,保存/轉換html實體,並使用utf-8字符串很好地工作。安全地從Python中的字符串中刪除所有的HTML代碼
顯然BeautifulSoup很容易受到一些特製的HTML字符串,我建有HTMLParser的一個簡單的解析器得到公正的文本,但我失去了實體
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.data = []
def handle_data(self, data):
self.data.append(data)
def handle_charref(self, name):
self.data.append(name)
def handle_entityref(self, ent):
self.data.append(ent)
讓我像
[u'Asia,sp',u'cialiste du voyage',...
丟失spécialiste中重音符號「e」的實體。
使用許多正則表達式中的一個,你可以找到答案類似的問題,它總是會有一些沒有考慮到的邊緣情況。
有沒有我可以使用的真正好的模塊?
bleach.clean(「是不允許」,條= TRUE),這可能是正是我需要的,我會做一些測試使用UTF-8,HTML實體和今晚的東西,然後讓你知道,謝謝 – 2013-04-09 10:36:45
漂白劑可能不會將HTML實體轉換爲其真正的UTF-8副本。如果沒有,請嘗試下面的問題:http://stackoverflow.com/questions/57708/convert-xml-html-entities-into-unicode-string-in-python – 2013-04-10 00:15:56