为什么汤('table')[4]变成了无类型? TypeError:'NoneType'对象不可调用

时间:2013-05-28 07:50:12

标签: python web-scraping beautifulsoup

我正在使用Beautiful Soup进行网络搜索。所以,我的HTML代码有8个表。我正在尝试从这些表中提取内容。

for row in soup('table')[4].tbody('tr'):
  tds = row('td')
  print tds[0].string, tds[1].string

它给出了错误:

    for row in soup('table')[4].tbody('tr'):
TypeError: 'NoneType' object is not callable

我理解可能soup('table')[4]正在成为无类型。但是我不明白为什么类似的代码工作here而不是我的情况呢?

1 个答案:

答案 0 :(得分:4)

您的实际HTML中没有<tbody>标记。

在您的浏览器DOM中,<tbody>标记通常是自动标记;它是插入的,因为HTML规范声明应该有一个,但这并不意味着您的实际HTML源代码中包含该标记。 BeautifulSoup不会为您添加它。

直接查看<tr>代码:

for row in soup('table')[4]('tr'):