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

Python爬取网页筛选今日日期并存入DataFrame的问题求解

实现方案

原代码问题说明

  • 类型不匹配:你获取的now是带时分秒的datetime类型,而从页面提取存入date_today的是仅保留年月日的date类型,二者直接判等永远不成立
  • 逐次创建DataFrame会覆盖历史匹配结果,无法同时保留所有符合条件的日期
  • 没有处理无今日日期的空值场景,直接创建DataFrame可能报错

修正后完整代码

import datetime
import requests
from bs4 import BeautifulSoup
import pandas as pd
import datetime as dt

url = "https://www.sbp.org.pk/ecodata/index2.asp"
r = requests.get(url)
htmlContent = r.content
soup = BeautifulSoup(htmlContent, 'html.parser')

# 统一转成date类型,避免类型不匹配
today = dt.datetime.today().date()

data = []
for c in soup.find_all("td"):
    data.append(c.text.strip())

# 提取页面所有有效日期
page_dates = []
for _ in data:
    try:
        data_date = dt.datetime.strptime(_, '%b %d, %Y')
        page_dates.append(data_date.date())
    except ValueError:
        continue

# 筛选出所有等于今日的日期
today_matched = [d for d in page_dates if d == today]

# 存入DataFrame
if today_matched:
    df = pd.DataFrame({'update_date': today_matched})
    print("匹配到今日更新日期,DataFrame如下:")
    print(df)
else:
    print("no update")
    # 无匹配时也可以创建空DataFrame避免后续调用报错
    df = pd.DataFrame(columns=['update_date'])

额外优化说明

如果你需要同时保存日期对应的页面其他字段内容,可以在提取日期的时候同步保存关联的td内容,不需要单独只存日期列表,后续筛选的时候可以同时带出对应的业务数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:45:07