📜  HTML 清理和实体转换 | Python

📅  最后修改于: 2022-05-13 01:54:32.373000             🧑  作者: Mango

HTML 清理和实体转换 | Python

网络上非常重要且总是被忽视的任务是文本的清理。每当想解析 HTML 时,总是避免嵌入 Javascript 和 CSS。用户只对网络服务器上的标签和文本感兴趣。

lxml安装——
它是 C 库的Python绑定 - libxsltlibxml2 。所以维护一个Python基础,它是非常快速的 HTML 解析和 XML 库。为了让它工作——还需要安装 C 库。链接 - http://lxml.de/installation.html将提供所有安装说明。

sudo apt-get install python-lxml or
pip install lxml

使用lxml.html.clean模块中的clean_html()函数执行清理任务。此函数删除不必要的 HTML 标签。在下面的代码中, lxml.html.clean模块中的clean_html()函数用于从 HTML字符串中删除不必要的 HTML 标记和嵌入的 JavaScript。

代码——文本的清理
import lxml.html.clean
lxml.html.clean.clean_html('
                           my text')

输出 :

'
my text
'

如您所见,结果更容易和更清晰。因此,使我们的工作很容易处理 HTML。

lxml.html.clean_html()函数在将 HTML字符串解析为树时对字符串进行迭代。然后它会删除所有不重要的节点。使用嵌入式 JavaScript,该函数还使用正则表达式(正则表达式)替换和匹配来清除不必要属性的节点,例如嵌入式 JavaScript。这个函数定义了一个默认的 Cleaner 类,使用 clean_html() 方法被调用。通过创建 self 实例,可以自定义类行为。

转换 HTML 实体 –

诸如“ & ”或“ < ”之类的字符串是 HTML 实体。这些是在 HTML 中有特殊用途的普通 ASCII字符编码。 “ < ”是“ <”的实体,因为"<" <"于 HTML 标记中,它是 HTML 标记的开始字符。因此,为了对其进行转义,定义了"<"实体。 "&""&"
要处理 HTML 文档中的文本,请将这些实体转换回它们的正常字符,以便识别它们并适当地使用它们。

要求 :
1) 安装 BeautifulSoup
2) sudo easy_install beautifulsoup4 或 sudo pip install beautifulsoup4

它是一个用于实体转换的 HTML 解析器库。它只是简单地创建一个 BeautifulSoup 实例,给定一个包含 HTML 实体的字符串。然后它检索字符串属性:

代码 -

# importing BeautifulSoup
from bs4 import BeautifulSoup
  
print (BeautifulSoup('<').string)
  
print (BeautifulSoup('&').string)

输出 :

'<'
'&'

但反过来是不可能的,即对于 BeautifulSoup 中的 '<',会获得 None 结果,因为它在 HTML 中是无效的。 BeautifulSoup 寻找看起来与实体相似的标记,为了转换 HTML 实体,它用Python标准库中的htmlentitydefs.name2codepoint字典中的相应值替换它们。