美汤-多属性搜索

Sky*_*y83 2 python tags parsing attributes beautifulsoup

使用 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'})
Run Code Online (Sandbox Code Playgroud)

当我只有一个条件(“类”的一个值)时,我的代码可以完美运行,但是当我想要两个条件时,它就不再起作用了。

你知道如何写条件“OR”吗?为了有一个类的值,或者另一个

非常感谢。

液晶显示器

Man*_*ro1 6

在您的情况下,'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>
Run Code Online (Sandbox Code Playgroud)

您可以选择其中之一:

soup.find_all('a', {'class': ['foo', 'bar']})
Run Code Online (Sandbox Code Playgroud)