首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BeautifulSoup AttributeError: ResultSet对象没有'findAll‘属性

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

Stack Overflow用户
提问于 2018-02-08 00:05:30
回答 1查看 174关注 0票数 0

我正在使用BeautifulSoup尝试抓取以下内容:

代码语言:javascript
复制
[<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 (有两个以上的玩家)放到一个字典里,这样我就可以循环把它们添加到一个根url中。然而,我得到了以下错误:

'AttributeError: ResultSet对象没有属性'findAll‘。

代码语言:javascript
复制
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']

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-08 00:21:35

我不能完全确定这个错误,但这里有一个我用来剥离页面以获取hrefs的方法。不过,我用的是列表而不是字典。我对它进行了一些调整,以适合您的代码。希望这能有所帮助!

代码语言:javascript
复制
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对这个错误的看法是完全正确的!很高兴我回来了,知道了哪里出了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48668255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档