input: from typing import List
  
  def crawl(url: str) -> List[str]:
      """Create a web crawler that starts from a given url and collects the content of the page as well as finds all external links on the page.
      The crawler continues to crawl other pages that have not already been visited.
      Return a list of all unique page content collected.
  
      >>> crawl("http://example.com")
      ['response content from http://example.com', 'response content from linked page 1', ...]
      """
output:     import requests
      from bs4 import BeautifulSoup
      from urllib.parse import urljoin
  
      visited_urls = set()
      content_list = []
      queue = [url]
  
      while queue:
          current_url = queue.pop(0)
          if current_url in visited_urls:
              continue
  
          response = requests.get(current_url)
          if response.status_code != 200:
              continue
  
          content = response.text
          content_list.append(content)
          visited_urls.add(current_url)
  
          soup = BeautifulSoup(content, 'html.parser')
          for link in soup.find_all('a', href=True):
              absolute_url = urljoin(current_url, link['href'])
              if absolute_url not in visited_urls:
                  queue.append(absolute_url)
  
      return content_list