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

使用BeautifulSoup爬取网站日期和月份时遇KeyError问题求助

解决BeautifulSoup爬取日期的KeyError问题及月份爬取方法

嘿,我来帮你搞定这个问题!你的KeyError完全是因为对BeautifulSoup的用法理解有点小偏差,咱们一步步来修正:

一、修复日期爬取的KeyError

你写的a['date-day']是在尝试获取标签的date-day属性,但实际上date-day是这个<span>标签的class名称,不是它的属性。这个标签里的日期数字是作为文本内容存在的,所以正确的写法应该是获取标签的文本:

修正后的日期爬取代码:

from bs4 import BeautifulSoup

soup_2 = BeautifulSoup(r.content, 'html.parser')
temp_1 = soup_2.find_all('span', class_='date-day')
event_day = []
for a in temp_1:
    # 获取标签内的文本,strip()用来去掉多余的空格换行
    event_day.append(a.text.strip())

或者更简洁的列表推导式写法:

event_day = [a.text.strip() for a in soup_2.find_all('span', class_='date-day')]

二、爬取月份的正确方式

假设月份对应的HTML结构和日期类似,比如是这样的:

<span class="date-month">Oct</span>

那爬取月份的逻辑和日期完全一致,只需要把class名称换成对应的月份class即可:

示例代码:

# 爬取月份
temp_month = soup_2.find_all('span', class_='date-month')
event_month = [month.text.strip() for month in temp_month]

如果月份的HTML结构有差异(比如用了其他标签或class),只需要把class_参数改成对应的名称就行,核心都是获取标签内的文本内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:40:09