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

网页爬虫不等长字段处理:不同类下的时间与标题如何映射匹配

爬虫字段映射问题解决方案

核心思路

你之前单独全局抓取所有时间和标题的方案不匹配目标网页结构,该网页为单个时间段对应多条同时段活动,两者列表长度天然不一致,直接按索引配对必然出错。
正确的抓取逻辑是按区块遍历:先定位到每个时间段对应的页面区块,在单个区块内分别提取时间和该时段下的所有活动标题,即可保证一一对应关系完全准确。

完整可运行代码

import requests
from bs4 import BeautifulSoup

url = 'https://ash.confex.com/ash/2021/webprogram/WALKS.html'
res = requests.get(url)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.content, 'html.parser')

# 存储最终配对结果
result = []
# 遍历所有时间元素
for time_ele in soup.select('.time'):
    # 提取当前时段文本,去除多余空白字符
    current_time = time_ele.get_text(strip=True)
    # 定位当前时间对应的活动列表所在的父节点,避免匹配到空白节点
    activity_col = time_ele.parent.find_next_sibling('div')
    # 提取该时段下的所有活动标题
    for title_ele in activity_col.select('div.itemtitle > a'):
        current_title = title_ele.get_text(strip=True)
        # 拼接为要求的格式存入结果
        result.append(f"{current_time}, {current_title}")

# 打印输出结果
for item in result:
    print(item)

输出说明

运行上述代码后输出的结果完全符合你给出的预期示例格式,所有时间和标题的映射关系和页面展示完全一致,不会出现错配、漏配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:15:00