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

Python BeautifulSoup爬虫:按字段关键词过滤结果写入CSV

BeautifulSoup抓取脚本CSV写入前关键词过滤实现

需求说明

  • 现有稳定运行的Python抓取脚本:基于Selenium加载页面、BeautifulSoup解析DOM,已实现分页遍历、日期阈值校验、表格字段提取、结果暂存、结构化数据写入CSV全流程
  • 需新增过滤规则:数据写入CSV前做二次校验,单条记录满足以下任意条件才保留写入:
    • short_b(代码中对应德语命名变量ausschreibung)字段包含预设关键词列表中任意一个词
    • organization(代码中对应德语命名变量organisation)字段包含预设关键词列表中任意一个词

代码中部分变量使用德语命名,适配德国开发者使用习惯。

实现方案

直接使用Python内置any()函数完成匹配判断,无需安装额外依赖,逻辑简洁运行效率高:

  1. 提前定义好待匹配的关键词常量列表
  2. 每条原始记录提取完成后,分别校验两个目标字段是否命中任意关键词,建议统一转小写实现不区分大小写的匹配,避免漏判大小写不同的相同词汇
  3. 两个字段任意一个命中匹配规则,就将该条记录追加到最终待写入结果列表,未命中的记录直接丢弃
  4. 最终将过滤完成的结果列表写入CSV即可

核心代码片段

# 预设待匹配关键词列表,按需替换为实际关键词
FILTER_KEYWORDS = ["term1", "term2", "term3"]
# 存储过滤后符合要求的记录
valid_records = []

# 遍历所有提取到的原始抓取记录
for item in raw_crawl_records:
    # 匹配organisation字段
    org_match = any(k.lower() in item["organisation"].lower() for k in FILTER_KEYWORDS)
    # 匹配short_b/ausschreibung字段
    desc_match = any(k.lower() in item["ausschreibung"].lower() for k in FILTER_KEYWORDS)
    
    # 任意字段命中即保留记录
    if org_match or desc_match:
        valid_records.append(item)

# 后续执行CSV写入逻辑时,直接传入valid_records即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:24:14