input: Write a function to create a web crawler in Python that starts from a given URL and looks for other links on the page, then scrapes the page content. The function should return the set of visited URLs.
  def crawl(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 visited
  assert crawl("http://example.com")=={"http://example.com"}
  assert crawl("http://example.com/page1")=={"http://example.com/page1", "http://example.com/page2"}
  assert crawl("http://example.com/page3")=={"http://example.com/page3", "http://example.com/page4", "http://example.com/page5"}
  assert crawl("http://example.com/page6")=={"http://example.com/page6", "http://example.com/page7"}
  assert crawl("http://example.com/page8")=={"http://example.com/page8"}
output: def crawl(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 visited