input: Write a function named `crawl` that takes a URL as input, starts from that website, and looks for other links in the page. It then scrapes the page content and continues this process for each found link. The function should use `requests` to fetch the web pages, `BeautifulSoup` from the `bs4` module to parse the HTML, and `re` for regular expressions to find valid links. The function should keep track of visited URLs using a set to prevent revisiting.
  
  
  import requests
  from bs4 import BeautifulSoup
  import re
  
  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'])
  
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'])