HTML页面通用日期解析方法及适用Python模块问询
网页通用发布日期提取Python方案
可用模块推荐
- 首选
htmldate:专为网页日期提取设计的第三方库,完美适配你的需求场景:无需提前做HTML标签清洗、支持从页面任意位置扫描日期、兼容全球上百种语言的各类日期格式,还能自动区分页面的发布日期和更新日期,开箱即用不需要额外的规则配置。 - 辅助搭配
dateparser:如果需要单独解析已经提取出的纯文本日期字符串,可以用这个模块,支持几乎所有常见的自然语言日期表达,包括相对时间(如「3天前」)、不同语种日期(如「Dec 12, 2023」「2024年5月8日」)、各类分隔符的数字日期格式。
基础使用示例
首先执行命令安装依赖:pip install htmldate dateparser
直接提取整页日期
import requests from htmldate import find_date # 直接传入获取到的原始HTML内容即可,模块自动过滤标签干扰 resp = requests.get("你的目标页面URL") publish_date = find_date(resp.content) print(publish_date)
以上方法默认会优先从meta标签、JSON-LD结构化数据等标准位置读取日期,读取失败会自动扫描整个body的文本内容匹配日期,默认返回ISO格式的标准化日期,可传参数调整输出格式为原始字符串或datetime对象。
非标准日期字符串解析
如果你已经拿到了掺杂其他文本的日期片段,可以用dateparser解析:
import dateparser # 自动识别中文、英文、相对时间等各类格式 raw_date = "发布于 2024年3月12日 下午4点" parsed_date = dateparser.parse(raw_date, languages=['zh']) print(parsed_date)
优化小技巧
- 针对中文站点,给dateparser加
languages=['zh']参数可以大幅提高识别准确率 - 要优先获取首次发布日期而非更新日期,给
find_date加original_date=True参数即可 - 遇到识别率低的站点,可开启
find_date的extensive_search=True参数,会做更深度的全页扫描,覆盖更多边缘场景
内容的提问来源于stack exchange,提问作者matheus james
相关产品推荐
相关产品推荐

