繁体   English   中英

使用Python搜索特定的HTML字符串

[英]Searching for specific HTML string using Python

什么模块是编写Python程序的最佳方式,该程序可以搜索数百个html文档并删除给定的html字符串。 例如,如果我有一个<a href="test.html">Test</a>的html文档,而我想从具有该文档的每个html页面中删除它。

非常感谢您的帮助,我不需要有人为我编写程序,只是在正确方向上提供了帮助。

如果您要搜索的字符串原样位于HTML中,那么简单的字符串替换就可以了:

old_html = open(html_file).read()
new_html = old_html.replace(my_string, "")
if new_html != old_html:
    open(html_file, "w").write(new_html)

作为字符串实际不在HTML中的示例,假设您正在按照您所说的那样查找“ Test”。 您是否希望它与这些HTML片段匹配?:

<a href='test.html'>Test</a>
<A HREF='test.html'>Test</A>
<a href="test.html" class="external">Test</a>
<a href="test.html">Tes&#116;</a>

依此类推:“相同” HTML可以用许多不同的方式表示。 如果您知道HTML中使用的精确字符,那么简单的字符串替换就可以了。 如果需要在HTML语义级别进行匹配,则需要使用更高级的工具(例如BeautifulSoup),但即使在不受删除影响的部分中,您也可能会获得与开始时非常不同的HTML输出。 ,因为整个文件将被解析并重构。

要对许多文件执行代码,您会发现os.path.walk可用于在树中查找文件,或者glob.glob用于将文件名匹配到类似shell的通配符模式。

htmllib

该模块定义了一个类,该类可以用作解析以超文本标记语言(HTML)格式化的文本文件的基础。 该类与I / O没有直接关系,它必须通过方法以字符串形式提供输入,并调用“格式化程序”对象的方法以产生输出。 HTMLParser类旨在用作其他类的基类,以增加功能,并允许扩展或覆盖其大多数方法。 反过来,该类又继承自sgmllib模块中定义的SGMLParser类。 HTMLParser实现支持RFC 1866中描述的HTML 2.0语言。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM