Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 美化组4:选择属性不等于x的元素_Python_Html_Python 2.7_Beautifulsoup_Html Parsing - Fatal编程技术网

Python 美化组4:选择属性不等于x的元素

Python 美化组4:选择属性不等于x的元素,python,html,python-2.7,beautifulsoup,html-parsing,Python,Html,Python 2.7,Beautifulsoup,Html Parsing,我想这样做: soup.find_all('td', attrs!={"class":"foo"}) 我想找到所有没有foo类的td。 显然,上述方法不起作用,但有什么作用呢?BeautifulSoup确实让“汤”变得漂亮且易于使用 您可以在属性值中选择: soup.find_all('td', class_=lambda x: x != 'foo') 演示: >>来自bs4导入组 >>>data=”“” ... 1. 2. 3. ... ... """ >>>汤=美汤(数据) >>>查

我想这样做:

soup.find_all('td', attrs!={"class":"foo"})
我想找到所有没有foo类的td。

显然,上述方法不起作用,但有什么作用呢?

BeautifulSoup
确实让“汤”变得漂亮且易于使用

您可以在属性值中选择:

soup.find_all('td', class_=lambda x: x != 'foo')
演示:

>>来自bs4导入组
>>>data=”“”
... 
1.
2.
3.
... 
... """
>>>汤=美汤(数据)
>>>查找所有('td',class=lambda x:x!='foo'):
...     打印元素.text
... 
1.
3.

有一种方法
.select()
允许您将CSS选择器作为字符串传递:

soup.select('td:not(.foo)'))

以上代码将返回所有
标记,这些标记不属于
foo

@alecxe是的,谢谢。
>>> from bs4 import BeautifulSoup
>>> data = """
... <tr>
...     <td>1</td>
...     <td class="foo">2</td>
...     <td class="bar">3</td>
... </tr>
... """
>>> soup = BeautifulSoup(data)
>>> for element in soup.find_all('td', class_=lambda x: x != 'foo'):
...     print element.text
... 
1
3