You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取嵌套div class中HTML聊天记录的消息发送日期

问题解决方法

你要的完整消息发送时间存储在日期节点的title属性中,节点本身的文本是页面截断展示的短时间(仅显示时分),直接取属性值即可。

适配你现有逻辑的实现代码

和你已有的发件人提取逻辑兼容,可直接生成pandas DataFrame:

import pandas as pd

# 以下为你已有的消息节点选取逻辑
messages = doc.select('div[id]')
msg_list = []

for message in messages:
    single_msg = {}
    # 原有发件人提取逻辑
    try:
        single_msg['sender'] = message.select_one('.from_name').text.strip()
    except:
        single_msg['sender'] = "未识别到发件人"
    
    # 新增:提取完整发送时间
    try:
        date_node = message.select_one('.pull_right.date.details')
        # 直接取title属性存储的完整时间值,格式为 日.月.年 时:分:秒
        single_msg['send_time'] = date_node['title'].strip()
    except:
        single_msg['send_time'] = "未识别到发送时间"
    
    # 可选:同步提取消息正文
    try:
        single_msg['content'] = message.select_one('.text').text.strip()
    except:
        single_msg['content'] = "无文本内容"

    msg_list.append(single_msg)

# 直接转为DataFrame
df = pd.DataFrame(msg_list)

可选优化

如果需要把时间转为pandas可识别的时间类型,拿到df后加一行转换代码即可,方便后续做时间维度的统计筛选:

df['send_time'] = pd.to_datetime(df['send_time'], format="%d.%m.%Y %H:%M:%S")

注意:不要直接读取日期div的文本内容,那个值是页面为了排版做的截断展示,只有title属性里存的是完整精确的发送时间。

内容的提问来源于stack exchange,提问作者user19420019

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 07:42:13