2010-03-19 59 views
4

我使用BeautifulSoup來處理通過REST API收集的XML文件。從轉義的html - >轉換爲常規的html? - Python

響應包含HTML代碼,但BeautifulSoup轉義所有HTML標記,因此可以很好地顯示。

不幸的是我需要HTML代碼。


我該如何繼續將轉義的HTML轉換爲適當的標記?


幫助將非常感謝!

+0

很多重複的一個:HTTP://計算器。 com/questions/663058/html-entity-codes-to-text – bernie 2010-03-19 04:36:19

回答

10

我想你想從Python標準庫中得到xml.sax.saxutils.unescape

例如爲:

>>> from xml.sax import saxutils as su 
>>> s = '<foo>bar</foo>' 
>>> su.unescape(s) 
'<foo>bar</foo>' 
+0

@Alex謝謝你!這很好,很簡單! :D – RadiantHex 2010-03-19 18:10:20

+2

不幸的是,它不處理所有的字符。例如,''su.unescape('"')''不起作用。 – 2013-04-04 10:56:02

+0

您可以通過在字典中指定它們作爲「unes​​cape」的第二個參數來轉義其他字符。例如:'su.unescape(s,{'"':'''})' – amccormack 2015-09-03 17:56:31

0

你可以嘗試urllib模塊?

它有一個方法unquote()可能適合您的需求。

編輯:第二個想法,(和你的問題的更多閱讀),你可能只是想只使用string.replace()

像這樣:

string.replace('&lt;','<') 
string.replace('&gt;','>') 
+3

當saxutils.unescape將它們全部包裝完成時,爲什麼要編寫不同的替換步驟(對於lt,gt,amp)你呢? - )另外,請記住:替換調用不會改變字符串,它會建立一個新的字符串。你的代碼片段,如給出,是一個緩慢的無操作! - ) – 2010-03-19 20:29:46