input: Write a function to create a web scraper using Python BeautifulSoup that scrapes product data from an online web store. The function should return a list of dictionaries, where each dictionary contains the name, price, and description of a product. If no products are found, the function should return an empty list.
  assert scrape_products('http://web-store.com')==[{'name': 'Product1', 'price': '$10', 'description': 'Great product'}, {'name': 'Product2', 'price': '$20', 'description': 'Another great product'}]
  assert scrape_products('http://empty-store.com')==[]
  assert scrape_products('http://web-store.com/category')==[{'name': 'CategoryProduct1', 'price': '$5', 'description': 'Special product'}]
  assert scrape_products('http://broken-link-store.com')==[]
output: def scrape_products(url):
      from bs4 import BeautifulSoup
      import requests
      
      try:
          response = requests.get(url)
          response.raise_for_status()
      except requests.exceptions.RequestException:
          return []
      
      soup = BeautifulSoup(response.text, 'html.parser')
      products = []
      
      for product in soup.find_all('div', class_='product'):
          name = product.find('h2', class_='name').text
          price = product.find('span', class_='price').text
          description = product.find('p', class_='description').text
          products.append({'name': name, 'price': price, 'description': description})
      
      return products