Python2和Beautiful Soup - 使用多个CSS类过滤元素

2024-09-27 21:28:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让BS4过滤出包含某个类的元素。以下是我的HTML:

<!-- language: lang-html -->
<html>
<head>
    <title>Test</title>
</head>

<body>

<table>
    <tr class='test hidden'><td>foo</td></tr>
    <tr class='testabc'><td>bar</td></tr>   
    <tr class='test hidden'><td>foo</td></tr>
    <tr class='testxyz'><td>bar</td></tr>   
</table>

</body>

</html>

以及我的Python代码:

^{pr2}$

您可以看到,该表中有class='test hidden'或class='full'的行。我试图获取“hidden”不是元素上的类的所有行。在

实际上,我希望输出是:

<tr class='testabc'><td>bar</td></tr>   
<tr class='testxyz'><td>bar</td></tr>

相反,我得到所有行:

<tr class='test123 hidden'><td>foo</td></tr>
<tr class='testabc'><td>bar</td></tr>   
<tr class='test456 hidden'><td>foo</td></tr>
<tr class='testxyz'><td>bar</td></tr>   

我试过“不在”或“不在”的多种组合!=". 我尝试创建一个lambda调用的函数,这样我就可以看到x是什么类型的对象,并更好地理解如何使用它,但是我无法使它工作,除非我将lambda硬编码为lambda x:x='testbc'或x='testxyz'

这能做我想做的吗?有人能给我指出正确的方向吗?在


Tags: lambdatest元素footitlehtmlbarbody

热门问题