1

我试试

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

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

<div class="view-content">
  <table class="views-table sticky-enabled cols-20">
    <thead>
      <tr>
        <td>blablaba</td>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>more blablabla</td>
      </tr>
    </tbody>
  </table>
</div>

这确实适用于 div

SoupStrainer("div",{"class": "view-content"})

不能像这样过滤具有多个类的元素的 SoupStrainer 吗?

4

1 回答 1

2

使用的比较是文字相等检查,因此以下工作:

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

您可以通过将函数传递给过滤器来使其匹配:

soup('table', {'class': lambda L: 'views-table' in L.split()})

可能值得检查您正在使用的版本,因为我觉得这不应该是这种情况了......更新:是的,你去https://bugs.launchpad.net/beautifulsoup/+bug/ 410304

于 2012-11-16T09:28:37.743 回答