熟悉html语言的会知道html中有字符实体一说,为了避免解析错误正确显示,html中有些字符要用字符实体替代。常见的有“<”小于号用“&lt;”替代,“>”大于号用“&gt;”替代,“&”和号用“&amp;”替代,“"”双引号用“&quot;”替代,“ ”空格用“&nbsp;”替代等。汉子及特殊字符都可以用对应的字符实体替代。如 “&copy;”表示版权的符号“©”,“&#20013;”表示汉子“中”。

使用python抓取网页源代码时,经常遇见html中有字符实体。如何转换为正常显示的字符串了,可以使用python中自带的html库下面unescape()函数来处理。

import html
print(html.unescape('Copyright&copy;2003-2021 python&amp;php &#23398;&#x4e60;'))
#输出为:Copyright©2003-2021 python&php 学习

如何将字符转换为html字符实体了,可以有两种方法

(1)、如果只是要转换“<”、“>”、“&”、“"”、“'”这几个字符,可以使用html库下面escape()函数来转换

import html
print(html.escape("<python>url='username=zz&age=30'</python>"))
#输出为:&lt;python&gt;url=&#x27;username=zz&amp;age=30&#x27;&lt;/python&gt;

(2)、可以使用自定义函数将所有字符转换为对应的html字符实体

def htmlEntities( string ):
    return ''.join(['&#{0};'.format(ord(char)) for char in string])
print(htmlEntities('hello中国'))
#输出为:&#104;&#101;&#108;&#108;&#111;&#20013;&#22269;


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
返回
顶部