def recursive_urls(urls):
    """
    Given a list of starting urls, recursively finds all descendant urls
    recursively
    """
if len(urls) == 0:
    return
rs = [grequests.get(url, hooks=dict(args=print_url)) for url in urls]
responses = grequests.map(rs)
url_lists = [get_urls_from_response(response) for response in responses]
urls = sum(url_lists, [])
recursive_urls(urls)
Как использовать python-запросы и обработчики событий для написания поискового робота с функцией обратного вызова?