Answer a question

I'm trying to get the alt texts from class="css-cku98t" that are inside div (class_='css-8atqhb')[0], but I'm stuck, I tried almost everything.

r = requests.get('https://app.mobalytics.gg/lol/champions/senna/build')
soup = bs4.BeautifulSoup(r.text, 'html.parser')

for i in soup.find_all(class_='css-8atqhb')[0]:
    print(i)

output:

<div class="css-1glrvh"><h3>Starter Items</h3><span>Time Target</span></div> <div class="css-1v6lj4c"><div class="css-19xu9kw"><div class="css-1t2k6vd"><span><img alt="Spectral Sickle" class="css-cku98t" loading="lazy" src="https://fastcdn.mobalytics.gg/assets/lol/images/dd/game-items/3862.png"/></span></div><div class="css-1l6vm6t"><span><img alt="Health Potion" class="css-cku98t" loading="lazy" src="https://fastcdn.mobalytics.gg/assets/lol/images/dd/game-items/2003.png"/></span></div><div class="css-18h675z"><span><img alt="Health Potion" class="css-cku98t" loading="lazy" src="https://fastcdn.mobalytics.gg/assets/lol/images/dd/game-items/2003.png"/></span></div><div class="css-7dime2"><span><img alt="Stealth Ward" class="css-cku98t" loading="lazy" src="https://fastcdn.mobalytics.gg/assets/lol/images/dd/game-items/3340.png"/></span></div></div><p class="css-1ofmdln">@ 13 sec</p></div>

Answers

Since 'alt' is an attribute of a img element, you can first search for all 'img' elements before querying the 'alt' attribute for each found element:

import requests
import bs4

r = requests.get('https://app.mobalytics.gg/lol/champions/senna/build')
soup = bs4.BeautifulSoup(r.text, 'html.parser')
alt_texts = [i['alt'] for i in soup.find_all(class_='css-8atqhb')[0].find_all('img')]
Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐