从BeautifulSoup中的表中读取行

时间:2016-03-11 11:37:25

标签: python beautifulsoup

我第一次尝试使用BeautifulSoup来阅读表格。

print table_body 

有效但

rows = table_body.find_all('tr')

给出

TypeError: 'NoneType' object is not callable. 

print table_body的结果是:

<tbody>
<tr>
<td>1</td>
<td><input type="checkbox" checked="checked" value="1098371296_GG14" class="tick_select" name="tick_select" id="tick_1098371296_GG14" /></td>
<td><a href="application.jsp?number=1322801&amp;cycle=16/17&amp;route=routecode&amp;seq=0">1098371296</a></td>
<td>GG14</td>
<td>Joe</td>
<td>Doe</td>
<td>US</td>
<td>15/16</td>
<td>15/01/15</td>
<td></td>
<td>05/05/15</td>
<td></td>
<td>R</td>
<td> <abbr title="Withdrawn">Cw</abbr> <abbr title="MS">Mt</abbr> <abbr title="UF elsewhere">Ue</abbr></td>
<td></td>
</tr>
[...]

我做错了什么?

我正在使用BeautifulSoup版本3.2.1。

2 个答案:

答案 0 :(得分:2)

添加并更改@ larsr答案的焦点:

不应该使用BeautifulSoup 3 - 它不再被维护。而是升级:

pip install --upgrade beautifulsoup4

并确保将其导入为:

from bs4 import BeautifulSoup

答案 1 :(得分:1)

这是因为findAll在更新版本的BeautifulSoup中重命名为find_all,因此请改为编写table_body.findAll('tr')