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

Python网页爬虫Lambda函数OR多关键词匹配失效问题求助

问题根因

你写的('corona' or 'covid')属于语法逻辑错误:在Python中,or会直接返回第一个真值,非空字符串默认判定为真值,所以这个表达式的运算结果永远是排在前面的第一个字符串,相当于实际只判断了第一个关键词是否存在,第二个关键词完全不会生效。

修复方案

写法1:直接拆分判断(适合少量关键词)

把两个关键词的存在性判断分开用or连接即可,修改后的lambda代码如下:

covid_links = lambda tag: (getattr(tag, 'name', None) == 'a' and
                        'href' in tag.attrs and
                        ('corona' in tag.get_text().lower() or 'covid' in tag.get_text().lower()))

修改后只要链接文本包含corona或者covid任意一个,都会被正确匹配到。

写法2:用any()批量判断(适合多关键词扩展)

如果后续需要新增关键词,建议把所有关键词放到列表里用any()判断,代码更简洁易维护:

covid_links = lambda tag: (getattr(tag, 'name', None) == 'a' and
                        'href' in tag.attrs and
                        any(k in tag.get_text().lower() for k in ['corona', 'covid']))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:15:05