跳转到主要内容

Python HTML/XML解析器,易于网页抓取。

项目描述

https://badge.fury.io/py/DHTMLParser3.svg https://img.shields.io/pypi/dm/dhtmlparser3.svg https://readthedocs.org/projects/dhtmlparser3/badge/?version=latest https://img.shields.io/github/issues/Bystroushaak/dhtmlparser3.svg https://img.shields.io/pypi/l/dhtmlparser3.svg https://img.shields.io/github/sponsors/Bystroushaak

这是什么?

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

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 (15.4 kB 查看哈希值)

上传时间 Python 3

支持者