Skip to main content

从 URL 和网页中快速、可靠地提取原始和更新的发布日期。

项目描述

Python 包 Python 版本 文件状态 代码覆盖率 下载 JOSS文章参考DOI:10.21105/joss.02439 代码风格:黑色

查找任何网页的原始和更新发布日期。从命令行或在 Python 中,包括从网页下载到 HTML 解析、抓取和文本分析所需的所有步骤。

简而言之


演示为 GIF 图像

使用 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 文档添加日期:

  1. 标头中的标记:常用模式用于识别相关元素(例如链接元素),包括Open Graph 协议属性

  2. HTML 代码:在整个文档中搜索结构标记:缩写时间元素和一系列属性(例如postmetadata

  3. 裸 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

执照

htmldateGNU 通用公共许可证 v3.0下分发。如果您希望重新分发此库,但又受到许可条件的限制,请尝试与兼容的许可进行多方许可交互,或联系我

另请参阅GPL 和自由软件许可:对企业有什么好处?

作者

这项工作是从 Web 文档中获取信息以构建用于研究的文本数据库(主要是语言分析和自然语言处理)的方法的一部分。根据严格的科学研究标准提取和预处理 Web 文本,这对进行此类研究的人来说是一个巨大的挑战。有些网页的 URL 和服务器响应都没有提供可靠的方法来确定文档何时发布或修改。了解更多信息:

JOSS文章参考DOI:10.21105/joss.02439 Zenodo 档案 DOI: 10.5281/zenodo.3459599
@article{barbaresi-2020-htmldate,
  title = {{htmldate: A Python package to extract publication dates from web pages}},
  author = "Barbaresi, Adrien",
  journal = "Journal of Open Source Software",
  volume = 5,
  number = 51,
  pages = 2439,
  url = {https://doi.org/10.21105/joss.02439},
  publisher = {The Open Journal},
  year = 2020,
}

您可以通过我的联系页面GitHub与我联系。

贡献

欢迎投稿

随时在专用页面上提出问题。感谢提交功能和错误修复的贡献者

感谢以下软件库:

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关