Python BeautifulSoup爬虫:按字段关键词过滤结果写入CSV
BeautifulSoup抓取脚本CSV写入前关键词过滤实现
需求说明
- 现有稳定运行的Python抓取脚本:基于Selenium加载页面、BeautifulSoup解析DOM,已实现分页遍历、日期阈值校验、表格字段提取、结果暂存、结构化数据写入CSV全流程
- 需新增过滤规则:数据写入CSV前做二次校验,单条记录满足以下任意条件才保留写入:
short_b(代码中对应德语命名变量ausschreibung)字段包含预设关键词列表中任意一个词organization(代码中对应德语命名变量organisation)字段包含预设关键词列表中任意一个词
代码中部分变量使用德语命名,适配德国开发者使用习惯。
实现方案
直接使用Python内置any()函数完成匹配判断,无需安装额外依赖,逻辑简洁运行效率高:
- 提前定义好待匹配的关键词常量列表
- 每条原始记录提取完成后,分别校验两个目标字段是否命中任意关键词,建议统一转小写实现不区分大小写的匹配,避免漏判大小写不同的相同词汇
- 两个字段任意一个命中匹配规则,就将该条记录追加到最终待写入结果列表,未命中的记录直接丢弃
- 最终将过滤完成的结果列表写入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
相关产品推荐
相关产品推荐

