input: Write a python function to recursively crawl all hyperlinks from a given URL.
  assert crawler('http://example.com')==None
output: def crawler(url, visited=None):
      import requests
      from bs4 import BeautifulSoup
      import urllib.parse
      
      if visited is None:
          visited = set()
      
      if url in visited:
          return
      
      visited.add(url)
      
      try:
          response = requests.get(url)
          response.raise_for_status()
          soup = BeautifulSoup(response.text, 'html.parser')
          
          for link in soup.find_all('a', href=True):
              next_url = urllib.parse.urljoin(url, link['href'])
              crawler(next_url, visited)
      
      except (requests.RequestException, ValueError):
          return