input: 
  from typing import List
  
  def find_all_links_and_scrape(url: str, scrapers: List[callable]) -> List[str]:
      """
      Write a function that takes a starting URL and a list of scraper functions, 
      and then performs a web crawl starting from the given URL. The function should 
      look for other links on the page, visit them, apply the scraper functions to the 
      page content, and return a list of scraped content.
  
      Each scraper function should take a page's HTML content as input and return 
      a string of scraped data.
  
      >>> def simple_scraper(html: str) -> str:
      ...     return "Scraped content"
  
      >>> links_scraped = find_all_links_and_scrape('http://example.com', [simple_scraper])
      >>> print(links_scraped)
      ["Scraped content"]
      """
  
output:     import requests
      from bs4 import BeautifulSoup
      from urllib.parse import urljoin
  
      def get_links(url: str) -> List[str]:
          response = requests.get(url)
          soup = BeautifulSoup(response.text, 'html.parser')
          links = [urljoin(url, a['href']) for a in soup.find_all('a', href=True)]
          return links
  
      def scrape_page(url: str, scrapers: List[callable]) -> List[str]:
          response = requests.get(url)
          html_content = response.text
          scraped_data = [scraper(html_content) for scraper in scrapers]
          return scraped_data
  
      visited_urls = set()
      to_visit = [url]
      scraped_content = []
  
      while to_visit:
          current_url = to_visit.pop(0)
          if current_url not in visited_urls:
              visited_urls.add(current_url)
              scraped_content.extend(scrape_page(current_url, scrapers))
              to_visit.extend(get_links(current_url))
  
      return scraped_content