Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 BeautifulSoup SoupStrainer不';当元素有多个类时不工作?_Python_Beautifulsoup - Fatal编程技术网

Python BeautifulSoup SoupStrainer不';当元素有多个类时不工作?

Python BeautifulSoup SoupStrainer不';当元素有多个类时不工作?,python,beautifulsoup,Python,Beautifulsoup,我试着 在这样的桌子上没有运气: necessaryStuffOnly = SoupStrainer("table",{"class": "views-table"}) soup = BeautifulSoup(vegetables,parse_only=necessaryStuffOnly) 像这样的SoupTrainer不能在具有多个类的元素上进行筛选吗?所使用的比较是一种文字相等检查,因此以下操作有效: SoupStrainer("div",{"class": "view-content

我试着

在这样的桌子上没有运气:

necessaryStuffOnly = SoupStrainer("table",{"class": "views-table"})
soup = BeautifulSoup(vegetables,parse_only=necessaryStuffOnly)

像这样的SoupTrainer不能在具有多个类的元素上进行筛选吗?

所使用的比较是一种文字相等检查,因此以下操作有效:

SoupStrainer("div",{"class": "view-content"})
通过将函数传递给过滤器,可以使其匹配:

soup('table', {'class': "views-table sticky-enabled cols-20"})

也许值得检查一下你正在使用的版本,因为我觉得这种情况不应该再发生了。。。更新:是的,在这里你去

lambda函数的工作,但错误修复是搜索只?还是同样适用于SoupStrainer?@Dieter Pass-我似乎从很久以前就回忆起了类似的事情-并且没有任何理由深入研究它。。。我现在通常使用
lxml.html
来处理大多数事情……我正在清理的html有时真的很混乱,这就是我使用BeautifulSoup的原因。如果我认为纯LXML?@ diter,你可以使用LXML,但指定漂亮的汤作为解析器-那么你得到最好的两个世界-我会给一个去
soup('table', {'class': "views-table sticky-enabled cols-20"})
soup('table', {'class': lambda L: 'views-table' in L.split()})