Вы можете использовать селектор css для этого, [class*='ZoneExpression']
означает, что он будет соответствовать как "ZoneExpression"
, так и "ZoneExpression1"
(".*ZoneExpression.*"
):
import requests
session = requests.Session()
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'}
r = session.get('https://www.larousse.fr/dictionnaires/francais-anglais/aimer/1925', headers=headers)
soup = BeautifulSoup(r.content, 'html.parser')
r = [sub_tag.select_one("audio").get("src") for tag in soup.select(".itemZONESEM") for sub_tag in tag.select("[class*='ZoneExpression']")]
print(r)
Что дало мне:
['/dictionnaires-prononciation/francais/tts/229646fra2', '/dictionnaires-prononciation/francais/tts/83614fra2', '/dictionnaires-prononciation/francais/tts/229647fra2', '/dictionnaires-prononciation/francais/tts/229648fra2', '/dictionnaires-prononciation/francais/tts/229649fra2', '/dictionnaires-prononciation/francais/tts/229650fra2', '/dictionnaires-prononciation/francais/tts/229651fra2', '/dictionnaires-prononciation/francais/tts/229652fra2', '/dictionnaires-prononciation/francais/tts/229653fra2', '/dictionnaires-prononciation/francais/tts/229654fra2', '/dictionnaires-prononciation/francais/tts/229655fra2', '/dictionnaires-prononciation/francais/tts/2234fra2', '/dictionnaires-prononciation/francais/tts/229657fra2', '/dictionnaires-prononciation/francais/tts/229658fra2', '/dictionnaires-prononciation/francais/tts/229659fra2', '/dictionnaires-prononciation/francais/tts/229660fra2']