BeautifulSoup AttributeError:ResultSet对象没有属性' findAll'

时间:2018-02-07 16:05:30

标签: python beautifulsoup

我使用BeautifulSoup试图抓住以下内容:

[<ol class="player-profiles-list">
<li>
<a href="/player-profiles/player-1/">
<img alt="" height="64" src="/images/players/small/default.png" 
width="42"/>
<span>
                                                        player 1                                                    
      </span>
</a>
</li>
<li>
<a href="/player-profiles/player-2/">
<img alt="" height="64" src="/images/players/small/default.png" 
width="42"/>
<span>
                                                         player 2                                                    
      </span>
</a>
</li>

我想将每个href(有超过2个玩家)放入一个字典中,这样我就可以循环将它们中的每一个添加到根URL中。但是我收到以下错误:

&#39; AttributeError:ResultSet对象没有属性&#39; findAll&#39;。

soup = BeautifulSoup(r.text, 'html.parser')
playerList = soup.findAll('ol', {'class' : 'player-profiles-list'}) 
playerDict = {}    

for player in playerList.findAll('a'):
    playerDict[player.text] = player['href']

提前致谢

1 个答案:

答案 0 :(得分:0)

我不能完全确定错误,但是这里有一个单行程,我用了一些方法来删除hrefs的页面。我使用了列表而不是字典。我调整了一下以适应您的代码。希望这有帮助!

soup = BeautifulSoup(page, 'html.parser')
players = soup.find('ol', attrs={'class': 'player-profiles-list'})
links = [a['href'] for a in players.find_all('a', href=True) if a.text.strip()]  

@Keyur对错误完全正确!很高兴我回来了解到了什么是错的。