> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.scrapingbee.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Scraping an E-commerce product page

Don't hesitate to take a look at our [Python web scraping 101](https://www.scrapingbee.com/blog/web-scraping-101-with-python/) to read a detailed introduction to these libraries. We also have a lot of tutorials in different languages in our [web scraping blog](https://www.scrapingbee.com/blog/).

We are going to extract the price, and product name for this product: [https://clever-lichterman-044f16.netlify.app/products/taba-cream.1/](https://clever-lichterman-044f16.netlify.app/products/taba-cream.1/)

![E-commerce product page with Chome dev tools opened.](https://storage.crisp.chat/users/helpdesk/website/66a2759f2b092c00/image_l8qxkm.png)

We are going to use some basic [CSS selectors](https://www.scrapingbee.com/blog/python-web-scraping-beautiful-soup/) to extract the price, title, and image URL. Then we simply print the result into the console.

```
import requests
from bs4 import BeautifulSoup

# Extract product data from a (dummy) E-commerce product page
# https://www.scrapingbee.com/

# Replace with your ScrapingBee API
SCRAPINGBEE_API_KEY = ""
endpoint = "https://app.scrapingbee.com/api/v1"
rows = []

params = {
    'api_key': SCRAPINGBEE_API_KEY,
    'url': 'https://clever-lichterman-044f16.netlify.app/products/taba-cream.1/',
}

response = requests.get(endpoint, params=params)
if response.status_code != 200:
    print('Error with your request: ' + str(response.status_code))
    print(response.content)
else:
    #import pdb;pdb.set_trace()
    soup = BeautifulSoup(response.content, 'html.parser')
    product = {
        'price': soup.select('.my-4 s')[0].text,
        'product_title': soup.select('.col-12 h2')[0].text
    }
    print(product)
```