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

如何拆分BeautifulSoup提取的td标签时间段并存入Pandas DataFrame

错误原因说明

你代码中el.find("first")返回None是因为find()方法的参数是目标子标签的标签名,而"first"是td节点的class属性值,并不是子标签名,自然找不到对应内容。要提取td节点内的文本,直接调用el.get_text()或者el.text即可。

最优实现方案

直接对拿到的rSet节点列表做遍历提取,用列表推导式就能完成数据整理,再直接转DataFrame即可,性能和可读性都最优:

from bs4 import BeautifulSoup as bs
import pandas as pd
import requests

myURL =  "xxxxx"
page = requests.get(myURL)
soup = bs(page.content,"html.parser")
rSet = soup.find_all("td", class_="first")

# 核心处理逻辑
time_pairs = [el.get_text(strip=True).split(" - ") for el in rSet]
df = pd.DataFrame(time_pairs, columns=["start_time", "end_time"])
鲁棒性增强版本

如果存在部分td节点内容不符合xx:xx - xx:xx格式的情况,可以加异常处理避免程序崩溃:

time_pairs = []
for el in rSet:
    try:
        time_str = el.get_text(strip=True)
        start, end = time_str.split(" - ")
        time_pairs.append((start.strip(), end.strip()))
    except (ValueError, AttributeError):
        # 跳过格式异常的条目
        continue

df = pd.DataFrame(time_pairs, columns=["start_time", "end_time"])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:54:00