Kids’ product eCommerce is one of the fastest-growing retail categories globally. Platforms like FirstCry (India) and Walmart (USA) list thousands of:
For consumer brands, distributors, analytics companies, and pricing teams, collecting this data is critical to:
This tutorial teaches you exactly how to scrape FirstCry and Walmart using Python, Selenium, Requests, and BeautifulSoup — just like the Grab.com tutorial style.
Let’s build a complete Kids’ Product Data Extraction System.
pip install selenium
pip install requests
pip install beautifulsoup4
pip install pandas
pip install lxml
pip install pillow
You will use:
FirstCry uses dynamic grids + lazy-loading.
Example category:
Baby Diapers:
https://www.firstcry.com/diapers
Start Selenium Browser
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from time import sleep
import pandas as pd
import requests
from bs4 import BeautifulSoup
browser = webdriver.Chrome()
browser.get("https://www.firstcry.com/diapers")
sleep(4)
Scroll the Page to Load More Products
for _ in range(8):
browser.find_element(By.TAG_NAME, "body").send_keys(Keys.END)
sleep(2)
Extract Product Cards
items = browser.find_elements(By.XPATH, '//div[contains(@class,"listItems")]//li')
Extract Product Details
firstcry_records = []
for item in items:
try:
name = item.find_element(By.CLASS_NAME, "li_title").text
except:
name = ""
try:
price = item.find_element(By.CLASS_NAME, "li_final_price").text
except:
price = ""
try:
mrp = item.find_element(By.CLASS_NAME, "li_mrp").text
except:
mrp = ""
try:
url = item.find_element(By.TAG_NAME, "a").get_attribute("href")
except:
url = ""
try:
img = item.find_element(By.TAG_NAME, "img").get_attribute("src")
except:
img = ""
firstcry_records.append({
"platform": "FirstCry",
"name": name,
"price": price,
"mrp": mrp,
"url": url,
"image_url": img
})
Example category:
Kids Toys:
https://www.walmart.com/browse/toys
Open Walmart Page
browser.get("https://www.walmart.com/browse/toys")
sleep(4)
Scroll to Load Dynamic Listings
for _ in range(8):
browser.find_element(By.TAG_NAME, "body").send_keys(Keys.END)
sleep(2)
Extract Walmart Product Cards
w_items = browser.find_elements(By.XPATH, '//div[contains(@class,"search-result-gridview-item")]')
Extract Walmart Product Details
walmart_records = []
for item in w_items:
try:
name = item.find_element(By.CLASS_NAME, "product-title-link").text
except:
name = ""
try:
price = item.find_element(By.CLASS_NAME, "price-main").text
except:
price = ""
try:
url = item.find_element(By.TAG_NAME, "a").get_attribute("href")
except:
url = ""
try:
img = item.find_element(By.TAG_NAME, "img").get_attribute("src")
except:
img = ""
walmart_records.append({
"platform": "Walmart",
"name": name,
"price": price,
"mrp": "",
"url": url,
"image_url": img
})
df = pd.DataFrame(firstcry_records + walmart_records)
df.head()
Kids’ products often contain:
Let’s normalize titles:
def clean_title(t):
t = t.lower()
remove_words = ["buy now", "discount", "pack of", "pcs", "girls", "boys"]
for w in remove_words:
t = t.replace(w, "")
return t.strip()
df["clean_title"] = df["name"].apply(clean_title)
Using regex:
import re
def extract_age(t):
match = re.search(r"(\d+\s?(months|years|year|month))", t)
return match.group(1) if match else None
df["age_group"] = df["name"].apply(extract_age)
def extract_pack_size(t):
match = re.search(r"(\d+)\s?(pcs|pieces|count)", t.lower())
return match.group(1) if match else None
df["pack_size"] = df["name"].apply(extract_pack_size)
def classify_type(t):
t = t.lower()
if "diaper" in t:
return "Diapers"
if "toy" in t or "lego" in t or "puzzle" in t:
return "Toys"
if "bottle" in t or "sipper" in t:
return "Feeding"
if "dress" in t or "shirt" in t:
return "Kids Apparel"
return "Other"
df["category"] = df["clean_title"].apply(classify_type)
import os
from PIL import Image
from io import BytesIO
os.makedirs("kid_images", exist_ok=True)
def download_image(url, name):
if url:
response = requests.get(url)
img = Image.open(BytesIO(response.content))
img.save(f"kid_images/{name}.jpg")
for i, row in df.head(20).iterrows(): # download 20 sample images
download_image(row["image_url"], f"product_{i}")
df.to_csv("kids_products_firstcry_walmart.csv", index=False)
{
"platform": "FirstCry",
"name": "Pampers New Baby Diapers - Pack of 72",
"price": "₹899",
"mrp": "₹1099",
"url": "https://www.firstcry.com/...",
"image_url": "https://cdn.firstcry.com/...",
"clean_title": "pampers new baby diapers 72",
"age_group": "new baby",
"pack_size": "72",
"category": "Diapers"
}
And Walmart example:
{
"platform": "Walmart",
"name": "LEGO City Police Car Toy for 5+ Years",
"price": "$9.97",
"mrp": "",
"url": "https://www.walmart.com/...",
"image_url": "https://i5.walmartimages.com/...jpg",
"clean_title": "lego city police car toy 5 years",
"age_group": "5 years",
"pack_size": null,
"category": "Toys"
}
XPath updates may break code.
High-speed scraping will get blocked.
Brands write age groups in different formats.
Color/size/shade variations require clicking deeper.
NLP-based categorization works better than rule-based.
This tutorial is great for:
But when you need:
Then Actowiz Solutions is the right partner.
We already support:
Built for India, USA, Europe, UAE, KSA, and more.
Kids' product scraping is essential for:
With this tutorial, you now know how to:
For scalable, production-grade kids’ product intelligence, Actowiz Solutions provides end-to-end automated pipelines.
You can also reach us for all your mobile app scraping, data collection, web scraping, and instant data scraper service requirements!
Our web scraping expertise is relied on by 4,000+ global enterprises including Zomato, Tata Consumer, Subway, and Expedia — helping them turn web data into growth.
Watch how businesses like yours are using Actowiz data to drive growth.
From Zomato to Expedia — see why global leaders trust us with their data.
Backed by automation, data volume, and enterprise-grade scale — we help businesses from startups to Fortune 500s extract competitive insights across the USA, UK, UAE, and beyond.
We partner with agencies, system integrators, and technology platforms to deliver end-to-end solutions across the retail and digital shelf ecosystem.
Extract real-time travel mode data via APIs to power smarter AI travel apps with live route updates, transit insights, and seamless trip planning.
How a $50M+ consumer electronics brand used Actowiz MAP monitoring to detect 800+ violations in 30 days, achieving 92% resolution rate and improving retailer satisfaction by 40%.

Track UK Grocery Products Daily Using Automated Data Scraping across Morrisons, Asda, Tesco, Sainsbury’s, Iceland, Co-op, Waitrose, and Ocado for insights.
Whether you're a startup or a Fortune 500 — we have the right plan for your data needs.