在Python提供的标准库中有一个名为html的标准库,该标准库提供的功能很简单,仅仅是把一些组成标签的尖括号或者是一些特殊字符转换成实体字符。
这也是Python本身秉持的设计哲学,就是一个函数、一个模块或者一个标准库只专注于一件事或者是某一方面的事。
我们先来大概了解该标准的组成
>>> import html
>>> dir(html)
['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_charref', '_html5', '_invalid_charrefs', '_invalid_codepoints', '_re', '_replace_charref', 'entities', 'escape', 'unescape']
我们不管那些以_开头的东东,把注意放在escape和unescape这两个函数上。
假设我有一些HTML,我担心其中会包含一些可能危险的
没错escape函数就是转义的意思,就是把一些字符转换为实体字符。比如“<”会转换成“&+lt”、“>”会转换成“&+gt”等等。(加号表示连接两边的符号)
>>> import html
>>> help(html.escape)
Help on function escape in module html:
escape(s, quote=True)
Replace special characters "&", "<" and ">" to HTML-safe sequences.
If the optional flag quote is true (the default), the quotation mark
characters, both double quote (") and single quote (') characters are also
translated.
查看该函数的帮助可以了解到,它会把特定字符“&”,“<”,“>”等转换成HTML安全的实体字符。该函数还有一个可选的标记参数,默认为True,意思就是该函数默认为把引用符号(“”、‘’)等一并转换。
>>> import html
>>> demo = "Hello World!,'
"
>>> html.escape(demo,quote = False)
"Hello World!,'mangfu'
"
上面的例子中,我设置可选参数quote为False,则它并不会对引号(‘’)进行转换。
>>> import html
>>> demo = "Hello World!,'
"
>>> html.escape(demo)
'Hello World!,'mangfu'
'
上面的例子中,我使用该函数默认的可选参数,从结果中可以看出函数输出已经对引号(‘’)进行转换。
至于unescape函数,看该函数的名字就知道它的作用跟escape函数恰恰相反。
可能大家对这些功能还不是很熟悉,但是这在Web开发方面是很重要的,如果你以后学习Django来搭建自己的网站,会碰到这个功能的。
大家可以动手试试unescape函数。。。
对于初学者想更轻松的学好Python开发,爬虫技术,Python数据分析,人工智能等技术,这里也给大家准备了一套系统教学资源,加Python技术学习教程qq裙:855408893,免费领取。学习过程中有疑问,群里有专业的老司机免费答疑解惑!点击加入我们的 python学习圈