input: Write a function to scrape product data from an online web store using Python's BeautifulSoup library. The function should fetch the HTML content of the web store, parse the content, and extract the name, price, and description of each product listed on the page. The function should return a list of dictionaries, where each dictionary contains the extracted product data. If no products are found, the function should return an empty list.
  def scrape_products(url):
      import requests
      from bs4 import BeautifulSoup
      
      # Make a GET request to fetch the raw HTML content
      html_content = requests.get(url).text
      
      # Parse the html content
      soup = BeautifulSoup(html_content, "lxml")
      
      # Initialize an empty list to store product data
      products_data = []
      
      # Get the product data
      products = soup.find_all('div', attrs={"itemprop": "product"})
      for product in products:
          name = product.find("span", attrs={"itemprop": "name"}).text
          price = product.find("span", attrs={"itemprop": "price"}).text
          description = product.find("span", attrs={"itemprop": "description"}).text
          products_data.append({"name": name, "price": price, "description": description})
      
      return products_data
  
  assert scrape_products('http://imaginary-web-store.com') == [
      {"name": "Product A", "price": "$10.00", "description": "Product A description"},
      {"name": "Product B", "price": "$20.00", "description": "Product B description"}
  ]
  assert scrape_products('http://empty-web-store.com') == []
  assert scrape_products('http://another-web-store.com') == [
      {"name": "Product C", "price": "$15.00", "description": "Product C description"}
  ]
output: def scrape_products(url):
      import requests
      from bs4 import BeautifulSoup
      
      # Make a GET request to fetch the raw HTML content
      html_content = requests.get(url).text
      
      # Parse the html content
      soup = BeautifulSoup(html_content, "lxml")
      
      # Initialize an empty list to store product data
      products_data = []
      
      # Get the product data
      products = soup.find_all('div', attrs={"itemprop": "product"})
      for product in products:
          name = product.find("span", attrs={"itemprop": "name"}).text
          price = product.find("span", attrs={"itemprop": "price"}).text
          description = product.find("span", attrs={"itemprop": "description"}).text
          products_data.append({"name": name, "price": price, "description": description})
      
      return products_data