input: Write a function to create a web crawler in Python that starts from a given URL, looks for other links in the page, and scrapes the page content. The crawler should continue this process for all discovered links, ensuring that no link is visited more than once. If the input URL is empty, return an error message.
  assert crawl("http://example.com")==None
  assert crawl("http://test.com")==None
  assert crawl("")=="Error: Empty URL"
output: def crawl(url):
      if not url:
          return "Error: Empty URL"
      
      visited = set()
      queue = [url]
      
      while queue:
          current_url = queue.pop(0)
          if current_url in visited:
              continue
          
          visited.add(current_url)
          try:
              response = requests.get(current_url)
              soup = BeautifulSoup(response.text, 'html.parser')
              for link in soup.find_all('a', href=True):
                  new_url = urljoin(current_url, link['href'])
                  if new_url not in visited:
                      queue.append(new_url)
          except Exception as e:
              continue
      
      return None