def METHOD_NAME(self):
    known_urls = {self.root_url}
    visited_urls = set()
    data_by_url = {}
    while True:
        unvisited_urls = known_urls - visited_urls
        for url in unvisited_urls:
            data = requests.get(url).content
            data_by_url[url] = data
            visited_urls.add(url)
            known_urls.update(find_advisory_urls(data))
        if known_urls == visited_urls:
            break
    for url, data in data_by_url.items():
        yield from to_advisories(data)