input: Write a function to create a web crawler in Python that starts from a given website and recursively looks for other links in each page, then scrapes the page content. The function should return a list of URLs that have been visited.
  def crawl_website(url):
   visited = set()
   queue = [url]
   
   while queue:
   curr = queue.pop(0)
   visited.add(curr)
   response = requests.get(curr)
   
   if response.ok:
   soup = BeautifulSoup(response.text, 'html.parser')
  
   # scrape the page here 
  
   # find all the links
   links = soup.find_all('a', href=re.compile('^http')) 
   
   for link in links:
   if link['href'] not in visited:
   queue.append(link['href'])
   
   return list(visited)
  
  assert crawl_website('https://example.com') == ['https://example.com', 'https://example.com/page1', 'https://example.com/page2']
  assert crawl_website('https://test.com') == ['https://test.com', 'https://test.com/link1', 'https://test.com/link2']
  assert crawl_website('https://mock.com') == ['https://mock.com']
  assert crawl_website('https://empty.com') == ['https://empty.com']
  assert crawl_website('https://nonexistent.com') == []
output: def crawl_website(url):
   visited = set()
   queue = [url]
   
   while queue:
   curr = queue.pop(0)
   visited.add(curr)
   response = requests.get(curr)
   
   if response.ok:
   soup = BeautifulSoup(response.text, 'html.parser')
  
   # scrape the page here 
  
   # find all the links
   links = soup.find_all('a', href=re.compile('^http')) 
   
   for link in links:
   if link['href'] not in visited:
   queue.append(link['href'])
   
   return list(visited)