input: from typing import List
  
  def crawl(base_url: str) -> List[str]:
      """A web crawler that starts from a given base URL and finds all unique links on the page.
      It scrapes the page content and continues to search for more links recursively.
      
      >>> crawl("http://example.com")
      ['http://example.com', 'http://example.com/page1', 'http://example.com/page2']
      >>> crawl("http://testsite.com")
      ['http://testsite.com', 'http://testsite.com/about', 'http://testsite.com/contact']
      """
output:     
      import requests
      from bs4 import BeautifulSoup
      from urllib.parse import urljoin
  
      visited = set()
      to_visit = [base_url]
      links = []
  
      while to_visit:
          current_url = to_visit.pop(0)
          if current_url in visited:
              continue
          visited.add(current_url)
          links.append(current_url)
  
          try:
              response = requests.get(current_url)
              if response.status_code != 200:
                  continue
              soup = BeautifulSoup(response.text, 'html.parser')
              for link in soup.find_all('a', href=True):
                  absolute_url = urljoin(current_url, link['href'])
                  if absolute_url not in visited:
                      to_visit.append(absolute_url)
          except requests.RequestException:
              continue
  
      return links
  