HTMLParser 中的 Python 可重写函数

标签 python html-parser

我了解如何使用 HTMLParser 中的handle_starttag,但我很困惑它在幕后是如何工作的。

https://docs.python.org/3/library/html.parser.html#example-html-parser-application

文档说需要重写这个handle_starttag方法,它确实按预期工作。

但是,当我检查父类(HTMLParser)中的定义时,该定义只不过是一个“pass”。

那么handle_starttag是如何工作的呢?如果父定义为空,Python 如何知道 tag 是 tag 而 attrs 是属性? 如果我的问题不清楚,很乐意澄清更多信息。 提前致谢。

最佳答案

默认情况下,handle_starttag 不执行任何操作。它只是在那里被覆盖。知道什么是标签、什么是属性不是 handle_starttag 的工作;这是其他代码的工作。 什么都没有是默认handle_starttag的工作。

调用handle_starttagHTMLParser询问子类的方式,“嘿,你想用我刚刚解析的这个开始标签做任何事情吗”?重写的 handle_starttag 是子类响应“是的,谢谢,我会做我用开始标签做的事情”的方式。如果它没有被覆盖,它什么也不做。无论哪种方式,在调用之后,解析都会继续。

关于HTMLParser 中的 Python 可重写函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59765141/

相关文章:

python - 通过 Qt 播放音频的最佳方式是什么?

python:csv到json创建用逗号分隔的元素

python - 如何将 Pandas Dataframe 转换为所需的 Json 格式

python - 你如何找出你的 python 解释器在 python 中的位置?

java - 用于响应的 HTML 解析器 - Java

javascript - 有没有方便的 html-parser 可以在 Nativescript 中使用

android - Flutter 中的 HTML 解析,用于 android/iOS 开发

ruby - 在 Ruby 中解析 HTML 文档的方法?

JAVA - 我需要将 JSOUP 中的相对路径更改为绝对路径

python - 从源构建 TensorFlow 时,生成 `gen_io_ops.py` 文件的 bazel 规则在哪里?