При поиске со строковым аргументом вы заставляете findall () находить точные совпадения для каждого элемента Navigable. Вы можете сделать более простой поиск подходящих подстрок, используя regex logi c.
from bs4 import BeautifulSoup
import requests
import re
def search(soup):
results = soup.find_all(string=re.compile("Union"),recursive=True)
print(len(results))
web_url = "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pKVGlnQVAB?hl=en-IN&gl=IN&ceid=IN%3Aen"
r = requests.get(web_url)
soup = BeautifulSoup(r.text,'html.parser')
search(soup)
За это я получаю 7 матчей