美丽的汤 - 几个属性搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了美丽的汤 - 几个属性搜索相关的知识,希望对你有一定的参考价值。

使用Beautiful Soup,我想在html代码中找到所有标签'a',其属性“class”等于“button btn-1-small”或属性“class”等于“button beta-callout btn -1小”。我的代码是:

alltd = soup.find_all('a', {'class':'button btn-1-small'}, {'class':'button 
beta-callout btn-1-small'})

当我只有一个条件(“class”的一个值)时,我的代码工作正常,但是当我想要有两个条件时,它就不再起作用了。

你知道如何写一个条件“或”吗?为了使该类的值为另一个

非常感谢你。

LCS

答案

在你的情况下,'button btn-1-small'有多个类,这意味着只需要做soup.find_all('a', {'class': 'btn-1-small'})将返回两个元素。

但是,要查找具有一个类或另一个类的元素,您需要传递一个列表。

所以如果你有HTML作为:

<a href="#" class="foo">Test 1</a>
<a href="#" class="bar">Test 2</a>

您可以选择以下任一项:

soup.find_all('a', {'class': ['foo', 'bar']})

以上是关于美丽的汤 - 几个属性搜索的主要内容,如果未能解决你的问题,请参考以下文章

美丽的汤:“ResultSet”对象没有“find_all”属性?

美丽的汤(代码工作)现在只返回某些标签

美丽的汤越来越 tag.id

美丽的汤正则表达式

从 <a> 美丽的汤中提取 href

Python美丽的汤提取HTML元数据