首页 > 解决方案 > AttributeError: ResultSet 对象没有属性 'find_all' - Web 抓取 - Beautiful Soup

问题描述

我正在从 Wikipedia 页面上抓取一个表格,它显示错误:属性错误。这是我的代码:

right_table=soup.find_all('table',class_="nowraplinks collapsible autocollapse navbox-inner")

print(right_table)

print(type(right_table)) <class 'bs4.element.resultset'>

我想迭代每一行,但它显示错误

for row in right_table.find_all('tr'):
    print(row)

错误是:

AttributeError:ResultSet 对象没有属性“find_all”。您可能将项目列表视为单个项目。当您打算调用 find() 时,您是否调用了 find_all()?

标签: pythonweb-scraping

解决方案


欢迎使用 stackoverflow 和 BeautifulSoup。

find_all 的结果将是一个列表。您不能再次应用 find_all() ,因为它将用于列表。

你必须做类似的事情(如果你只有一张桌子),

right_table=soup.find('table',class_="nowraplinks collapsible autocollapse navbox-inner")
for row in right_table.find_all('tr'):
    print(row)

或者,如果您有多个表,则需要添加另一个 for 循环,例如,

right_table=soup.find('table',class_="nowraplinks collapsible autocollapse navbox-inner")
for table in right_table:    
   for row in table.find_all('tr'):
        print(row)

希望这可以帮助!干杯!


推荐阅读