Python 如何使用BeautifulSoup匹配只包含声明类而不包含任何其他类的标记?

Python 如何使用BeautifulSoup匹配只包含声明类而不包含任何其他类的标记?,python,python-3.x,beautifulsoup,Python,Python 3.x,Beautifulsoup,是否有一种方法可以使用BeautifulSoup仅将标记与指示的类属性相匹配,而不是与指示的类属性和其他属性相匹配?例如,在这个简单的HTML中: <html> <head> <title> Title here </title> </head> <body> <div class="one two"> some content here </div> <d

是否有一种方法可以使用BeautifulSoup仅将标记与指示的
属性相匹配,而不是与指示的
属性和其他属性相匹配?例如,在这个简单的HTML中:

<html>
 <head>
  <title>
   Title here
  </title>
 </head>
 <body>
  <div class="one two">
   some content here
  </div>
  <div class="two">
   more content here
  </div>
 </body>
</html>
我正在尝试打印此文件
此文件应匹配
,而不是
不应匹配

编辑:在这个简单的例子中,我知道类的唯一选项是
“一两个”
“两个”
,但在生产代码中,我只知道我想要匹配的是class
“两个”
;除了可能未知的
“two”
,其他标记可能还有大量其他类

另一方面,阅读第三版也很有帮助,而不是我之前链接的第三版

试试看:

divs = soup.findAll('div', class="two")

for div in divs:
    if div['class'] == ['two']:
        pass # handle class="two"
    else:
        pass # handle other cases, including but not limited to "one two"
尝试:


希望下面的代码对您有所帮助。虽然我没试过这个

soup.find("div", { "class" : "two" })

希望下面的代码对您有所帮助。虽然我没试过这个

soup.find("div", { "class" : "two" })

根据文档,这与
soup.find(“div”,“two”)
是相同的。根据文档,这与
soup.find(“div”,“two”)
是相同的。唯一的问题是我不知道标签将有哪些其他类+1,但如果可能的话,也可以查看我的编辑。由于您的答案与我的基本相同,如果您在我的编辑中加入了更改,我将接受并删除我自己的答案。@RicardoAltamirano我感谢您的礼貌。太好了。谢谢你的帮助。唯一的问题是我不知道标签还有哪些类+1,但如果可能的话,也可以查看我的编辑。由于您的答案与我的基本相同,如果您在我的编辑中加入了更改,我将接受并删除我自己的答案。@RicardoAltamirano我感谢您的礼貌。太好了。谢谢你的帮助。