如何用Python的Beautiful Soup提取含2或3个指定关键词的iframe src链接
解决多关键词匹配iframe src的问题
嘿,这个需求很常见,其实只要稍微调整一下判断逻辑,就能轻松实现同时匹配多个关键词的效果!
核心思路
你需要检查每个iframe的src是否同时包含所有指定的关键词(不管是2个还是3个),Python的all()函数刚好能帮我们高效完成这个判断——它会验证迭代器里的所有条件是否都为真。
实现代码
这里给你一个可扩展的版本,不管你要匹配2个还是N个关键词,只要修改关键词列表就行:
srcs = [] iframes = soup.find_all('iframe') # 定义你需要匹配的所有关键词,可根据需求增减 required_keywords = ['xyz', 'true'] # 要是需要3个,就改成['xyz', 'true', '72p'] for iframe in iframes: try: src = iframe['src'] # 检查所有关键词是否都存在于当前src中 if all(keyword in src for keyword in required_keywords): srcs.append(src) except KeyError: # 跳过没有src属性的iframe continue
代码解释
- 关键词列表:
required_keywords是你需要匹配的关键词集合,想加几个就加几个,非常灵活。 all()函数的作用:all(keyword in src for keyword in required_keywords)会逐个检查每个关键词是否在src里,只有所有关键词都存在时,才会返回True,这时候我们才把这个src加入结果列表。- 异常处理:和你原来的代码一样,跳过没有
src属性的iframe,避免KeyError。
可选扩展:大小写不敏感匹配
如果需要忽略关键词的大小写(比如匹配XYZ或者True也能命中),可以把src和关键词都转成小写再判断:
if all(keyword.lower() in src.lower() for keyword in required_keywords):
这样不管链接里的关键词是大写还是小写,都能被正确匹配到。
内容的提问来源于stack exchange,提问作者Mouhcin Iuoanid
相关产品推荐
相关产品推荐

