【发布时间】:2013-10-25 19:44:50
【问题描述】:
我一直在尝试开始使用 BS4,但我似乎在使用其中一张表时遇到了一些问题。所以,我有如下内容:
<td align="center" valign="top">
foo
</td>
<td align="center">
foo bar
</td>
<td align="center" class="new" valign="top">bar</td>
<td align="center" class="newq" valign="top">foo</td>
我想从上面提取<td align="center">。所以,我有类似的东西:
td_al_center = soup.find_all('td',{'align':'center'})
但这给了我以上所有 4 种组合。如何指定仅提取<td align="center">(带有foo bar 的那个)?如果有人能让我走上正轨,我将不胜感激..
【问题讨论】:
-
试试
soup.find_all('td',{'class':'new'}) -
@SivaCn:为什么?那显然不会返回他想要的那个。
-
@abarnert 它工作正常(Python2.7)
soup.findAll('td', {'class': 'new'}),这是一个坏主意,通过使用align="center"等常用参数进行过滤,因为可能有多个与之关联的标签. -
@SivaCn:不,它没有。他想找到第二个标签,即带有“foo bar”的标签。您将找到第三个标签,即带有“bar”的标签。而且没有明显的方法来调整你正在做的事情来找到他想要的东西——事实上,这正是他所要求的。
标签: python python-2.7 beautifulsoup