我正在使用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 (有两个以上的玩家)放到一个字典里,这样我就可以循环把它们添加到一个根url中。然而,我得到了以下错误:
'AttributeError: ResultSet对象没有属性'findAll‘。
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']提前感谢
发布于 2018-02-08 00:21:35
我不能完全确定这个错误,但这里有一个我用来剥离页面以获取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对这个错误的看法是完全正确的!很高兴我回来了,知道了哪里出了问题。
https://stackoverflow.com/questions/48668255
复制相似问题