Python HTML/XML解析器,易于网页抓取。
项目描述
这是什么?
DHTMLParser3是一个轻量级的HTML/XML解析器,专为快速从DOM中选取选定标签而创建。
当您需要为某个网页编写自己的“游击”API或爬虫时,它非常有用。
它是用纯Python编写的,没有依赖项,并且可以处理相当糟糕的HTML。
文档
完整的模块文档可以在以下位置找到: http://DHTMLParser3.rtfd.org
更改日志
3.0.17
修复了Tokenizer中的空字符串问题。
3.0.16
更改了.remove_item()方法的比较方式,以使用标识符进行比较。
3.0.15
添加了新方法parse_file(),以简化文件处理。
3.0.14
修复了tokenizer与非配对标签无空格的问题。
3.0.13
修复了设置参数时参数重新排序的问题。
3.0.12
向.content_str()方法添加了条件escape参数。
3.0.11
修复了.__deepcopy__()的父级问题。
3.0.10
实现了适当的.__copy__()和.__deepcopy__()方法。
3.0.9
修复了标签参数中引号转义的方式。
3.0.8
修复了嵌套标签的.__hash__()方法的行为。
3.0.7
不要转义<script>和<style>内容。
3.0.6
修复了.match()方法的行为。
添加了新方法.match_paths()。
添加了测试。
3.0.5
修复;SpecialDict.copy()没有返回任何值。
3.0.4
修复;不要搜索空标签。
3.0.3
修复;始终为仅包含字符串的小DOM返回容器元素。
3.0.2
为Tag添加了.__hash__()方法。
.replace_with() 方法现在接受 str 以及 Tag。
修复了解析器中非成对标签的 .parent 设置问题。
添加了许多测试来测试新添加的功能。
3.0.1
为 Tag 添加了 .__contains__() 方法,现在可以使用 in 操作符测试参数。
3.0.0
重写以使用不同的解析器,支持 HTML 实体。
类的结构完全改变,现在使用 Tag 和 Comment 代替 HTMLElement。
代码更简洁,方法名更全面。
默认情况下,树现在是双链的,没有任何额外成本。
实现了非常有用的魔术方法,因此支持索引运算符来访问参数和内容。
文档已完全重写。
覆盖测试集现在更大。
2.2.3
2020-04-12 修复由 #25 提供(感谢 https://github.com/fm4d)。
2.2.2
尝试修复奇怪的递归继承问题。
2.2.0
为与 Python3 兼容而重写。
2.1.0 - 2.1.8
状态解析器已修复 - 现在可以恢复无效 HTML,如 <invalid tag=something">。
重写以在解析器中使用 StateEnum,以提高可读性。
在 _raw_split() 期间禁用了垃圾回收器。
修复了 #16 - 在不以 > 结尾的标签之后恢复(例如 </code)。
关闭 #17 - 忽略 < 作为小于符号的使用。
恢复了多行属性的 支持。
.parseString() 现在不会尝试解析 HTML 元素参数。
实现了 first() 获取器。
许可证已更改为 MIT。
修复了 #18:在某些情况下导致无效输出的错误。
添加了 HTMLElement.__repr__()。
添加了 test_coverage.sh。
添加了扩展的 test_equality() 覆盖。
格式改进。
改进了构造函数处理,现在更易读。
更新了 setup.py 的格式。
添加了更多测试。
修复了 #22;SpecialDict 中的错误。
修复了一些讨厌的 Unicode 问题。
修复了 docs/__init__.py 中的 python 2/3 问题。
getVersion() -> get_version()。
2.0.10
添加了更多 removeTags() 的测试。
run_tests.sh 现在获取参数。
在 removeTags() 中的字符串检查从 basestring 更改为 str。
2.0.6 - 2.0.9
修复了 toString() 和 tagToString() 的行为。
SpecialDict 现在从 OrderedDict 继承。
更改并添加了 .params 属性的测试(现在使用 OrderedDict)。
修复了 _repair_tags() 中的错误。
删除了 _repair_tags() - 它实际上并不必要。
修复了可能导致无效 XML 输出的讨厌的错误。
2.0.1 - 2.0.5
修复了 .match() 中的错误。
修复了文档中的断链。
修复了 .isAlmostEqual() 中的错误。
.find();修复了阻止 tag_name 为 None 的错误。
为 SpecialDict 添加了 .__eq__() 操作符。
为 HTMLElement 添加了新的方法 .containsParamSubset()。
2.0.0
重写、重构、拆分为多个文件。
添加了几乎 100% 的代码的 unittest 覆盖。
添加了更好的选择方法(.wfind(),.match)。
添加了 Sphinx 文档。
修复了许多错误。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
DHTMLParser3-3.0.17-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3c8c9aea865be16b055a5f4282d1a064ba5cd676c1545491c2df061067f10333 |
|
MD5 | 700be9ff519daee36c901b79df4e46a3 |
|
BLAKE2b-256 | 4eeab1a7e71be4674a9b65e10f9fdf29055c3729d1188c84fb5a8fd0dd6814cf |