HTML 中的预留字符(如标签的小于号 < )必须被替换为字符实体( &lt; )。 不间断空格(&nbsp;)

1. 参考

HTML 字符实体

 

Python处理HTML转义字符

比方说一个从网页中抓到的字符串

html = '&lt;abc&gt;'

用Python可以这样处理:

import HTMLParser
html_parser = HTMLParser.HTMLParser()
txt = html_parser.unescape(html) #这样就得到了txt = '<abc>'

如果还想转回去,可以这样:

import cgi
html = cgi.escape(txt) # 这样又回到了 html = '&lt;abc&gt'

2. 常用

显示结果描述实体名称实体编号
  空格 &nbsp; &#160;
< 小于号 &lt; &#60;
> 大于号 &gt; &#62;
& 和号 &amp; &#38;
" 引号 &quot; &#34;
' 撇号  &apos; (IE不支持) &#39;

3. 代码

 1 In [354]: soup = BeautifulSoup("&ldquo;Dammit!&rdquo; he said.")
 2 
 3 In [355]: unicode(soup)
 4 Out[355]: u'<html><body><p>\u201cDammit!\u201d he said.</p></body></html>'
 5 
 6 In [358]: str(soup)
 7 Out[358]: '<html><body><p>\xe2\x80\x9cDammit!\xe2\x80\x9d he said.</p></body></html>'
 8 
 9 In [359]: print str(soup).decode('utf-8')
10 <html><body><p>“Dammit!” he said.</p></body></html>
11 
12 In [360]: print unicode(soup)
13 <html><body><p>“Dammit!” he said.</p></body></html>

 

posted @ 2017-06-16 17:38  my8100  阅读(2022)  评论(0编辑  收藏  举报