BeautifulSoup4 how to get alt text from img inside div
·
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')]
更多推荐

所有评论(0)