Python 如何使用BeautifulSoup匹配只包含声明类而不包含任何其他类的标记?
是否有一种方法可以使用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
类
属性相匹配,而不是与指示的类
属性和其他属性相匹配?例如,在这个简单的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我感谢您的礼貌。太好了。谢谢你的帮助。