从 URL 和网页中快速、可靠地提取原始和更新的发布日期。
项目描述
查找任何网页的原始和更新发布日期。从命令行或在 Python 中,包括从网页下载到 HTML 解析、抓取和文本分析所需的所有步骤。
简而言之
使用 Python:
>>> from htmldate import find_date
>>> find_date('http://blog.python.org/2016/12/python-360-is-now-available.html')
'2016-12-23'
在命令行上:
$ htmldate -u http://blog.python.org/2016/12/python-360-is-now-available.html
'2016-12-23'
特征
多语言、强大且高效(用于数百万文档的生产)
URL、HTML 文件或 HTML 树作为输入(包括批处理)
以任何日期格式输出为字符串(默认为ISO 8601 YMD)
检测原始日期和更新日期
兼容所有最新版本的 Python
htmldate可以检查标记和文本。它提供了以下方法来为 HTML 文档添加日期:
标头中的标记:常用模式用于识别相关元素(例如链接和元元素),包括Open Graph 协议属性
HTML 代码:在整个文档中搜索结构标记:缩写或时间元素和一系列属性(例如postmetadata)
裸 HTML 内容:启发式在文本和标记上运行:
在快速模式下,HTML 页面被清理并以精确模式为目标
在扩展模式下,所有可能的日期都被收集,并且消歧算法确定最佳日期
最后,输出经过验证并转换为所选格式。
表现
500 个包含可识别日期的网页(截至 Python 3.8 上的 2022-03-23) |
|||||
---|---|---|---|---|---|
Python 包 |
精确 |
记起 |
准确性 |
F分数 |
时间 |
文章日期提取器 0.20 |
0.769 |
0.691 |
0.572 |
0.728 |
4.4 倍 |
date_guesser 2.1.4 |
0.738 |
0.544 |
0.456 |
0.626 |
17倍 |
goose3 3.1.11 |
0.821 |
0.453 |
0.412 |
0.584 |
15倍 |
htmldate[all] 1.2.1(快速) |
0.848 |
0.921 |
0.790 |
0.883 |
1x |
htmldate[all] 1.2.1(广泛) |
0.839 |
0.990 |
0.832 |
0.908 |
2.3 倍 |
报纸3k 0.2.8 |
0.729 |
0.630 |
0.510 |
0.675 |
12倍 |
新闻-请 1.5.21 |
0.769 |
0.691 |
0.572 |
0.728 |
40x |
有关完整的结果和说明,请参见评估页面。
安装
这个 Python 包在 Linux、macOS 和 Windows 系统上进行了测试;它与 Python 3.6 以上兼容。它在包存储库PyPI中可用,并且可以通过pip(适用时为pip3)安装:pip install htmldate和可选的 pip install htmldate[speed]。
文档
有关安装、Python 和 CLI 使用的更多详细信息,请参阅文档:htmldate.readthedocs.io
执照
htmldate在GNU 通用公共许可证 v3.0下分发。如果您希望重新分发此库,但又受到许可条件的限制,请尝试与兼容的许可进行多方许可交互,或联系我。
贡献
欢迎投稿!
感谢以下软件库:
一些模式源自python-goose、metascraper、报纸和articleDateExtractor库。该模块显着扩展了它们的覆盖范围和鲁棒性。