熟悉html语言的会知道html中有字符实体一说,为了避免解析错误正确显示,html中有些字符要用字符实体替代。常见的有“<”小于号用“<”替代,“>”大于号用“>”替代,“&”和号用“&”替代,“"”双引号用“"”替代,“ ”空格用“ ”替代等。汉子及特殊字符都可以用对应的字符实体替代。如 “©”表示版权的符号“©”,“中”表示汉子“中”。
使用python抓取网页源代码时,经常遇见html中有字符实体。如何转换为正常显示的字符串了,可以使用python中自带的html库下面unescape()函数来处理。
import html print(html.unescape('Copyright©2003-2021 python&php 学习')) #输出为:Copyright©2003-2021 python&php 学习
如何将字符转换为html字符实体了,可以有两种方法
(1)、如果只是要转换“<”、“>”、“&”、“"”、“'”这几个字符,可以使用html库下面escape()函数来转换
import html print(html.escape("<python>url='username=zz&age=30'</python>")) #输出为:<python>url='username=zz&age=30'</python>
(2)、可以使用自定义函数将所有字符转换为对应的html字符实体
def htmlEntities( string ): return ''.join(['&#{0};'.format(ord(char)) for char in string]) print(htmlEntities('hello中国')) #输出为:hello中国
发表评论 取消回复