input: from typing import List
  
  def crawl(url: str) -> List[str]:
      """ Scrape content from a given website URL, crawling through the webpage and collecting 
      content from each link found within this page. Returns a list of URLs that have been visited.
  
      >>> crawl('https://example.com')
      ['https://example.com', 'https://example.com/page1', 'https://example.com/page2']
      >>> crawl('https://testsite.com')
      ['https://testsite.com']
      """
output:     from urllib.request import urlopen
      from bs4 import BeautifulSoup
      import re
  
      visited_urls = []
      queue = [url]
  
      while queue:
          current_url = queue.pop(0)
          if current_url not in visited_urls:
              visited_urls.append(current_url)
              try:
                  response = urlopen(current_url)
                  html = response.read()
                  soup = BeautifulSoup(html, 'html.parser')
                  for link in soup.find_all('a', href=True):
                      href = link['href']
                      if href.startswith('http'):
                          queue.append(href)
                      elif href.startswith('/'):
                          queue.append(url + href)
              except:
                  pass
  
      return visited_urls