Вы можете использовать пользовательскую функцию , чтобы проверить, содержит ли src
все нужные слова.
Например, вы можете использовать что-то вроде этого:
soup.find_all('iframe', src=lambda s: all(word in s for word in ('xyz', 'true')))
Демонстрация:
html = '''
<iframe src="https://xyz.co/embed/TNagkx3oHj8/The.Tale.S001.true.72p.x264-QuebecRules">...</iframe>
<iframe src="foo">...</iframe>
<iframe src="xyz">...</iframe>
<iframe src="xyz.true">...</iframe>
'''
soup = BeautifulSoup(html, 'html.parser')
iframes = soup.find_all('iframe', src=lambda s: all(word in s for word in ('xyz', 'true')))
print(iframes)
Вывод:
[<iframe src="https://xyz.co/embed/TNagkx3oHj8/The.Tale.S001.true.72p.x264-QuebecRules">...</iframe>, <iframe src="xyz.true">...</iframe>]
Примечание:
Если какой-либо из тегов <iframe>
не содержит атрибута src
, вышеуказанная функция вызовет ошибку.В этом случае измените функцию на:
soup.find_all('iframe', src=lambda s: s and all(word in s for word in ('xyz', 'true')))