Python BeautifulSoup:按名称查找与一个标记匹配的任何标记,或按属性查找与另一个标记匹配的任何标记

Python BeautifulSoup:按名称查找与一个标记匹配的任何标记,或按属性查找与另一个标记匹配的任何标记,python,beautifulsoup,Python,Beautifulsoup,我想查找或的所有标记。我尝试了bs.find_all(['h1','div'],attrs={'class':'abc'}),但这将忽略标记:显然,attrs参数将AND条件应用于搜索(这意味着标记必须属于标记名列表,并且具有给定的属性,而标记不满足该属性) 有人能建议解决这个问题吗?谢谢。也许你可以用 从bs4导入美化组作为bs 从io导入StringIO data=”“” 测试1 测试2 测试3 """ soup=bs(StringIO(数据),'html.parser') 打印(soup.

我想查找
的所有标记。我尝试了
bs.find_all(['h1','div'],attrs={'class':'abc'})
,但这将忽略
标记:显然,
attrs
参数将AND条件应用于搜索(这意味着标记必须属于标记名列表,并且具有给定的属性,而
标记不满足该属性)

有人能建议解决这个问题吗?谢谢。

也许你可以用

从bs4导入美化组作为bs
从io导入StringIO
data=”“”
测试1
测试2
测试3

""" soup=bs(StringIO(数据),'html.parser') 打印(soup.select('h1,div[class=“abc”])) 打印(soup.find_all(['h1','div'],attrs={'class':'abc'}))

输出

[<h1>Test 1</h1>, <div class="abc"><p>Test 3</p></div>]
[<div class="abc"><p>Test 3</p></div>]
[测试1,测试3

] [测试3

]
可能是您可以使用的

从bs4导入美化组作为bs
从io导入StringIO
data=”“”
测试1
测试2
测试3

""" soup=bs(StringIO(数据),'html.parser') 打印(soup.select('h1,div[class=“abc”])) 打印(soup.find_all(['h1','div'],attrs={'class':'abc'}))

输出

[<h1>Test 1</h1>, <div class="abc"><p>Test 3</p></div>]
[<div class="abc"><p>Test 3</p></div>]
[测试1,测试3

] [测试3

]
将两个结果连接起来怎么样,比如
bs.find_-all('h1')+bs.find_-all(['div',attrs={'class':'abc'})

将两个结果连接起来,比如
bs.find_-all('h1')+bs.find_-all(['div',attrs={'class':'abc'})

你不能只搜索两次吗?