Icon

Amazon Product Data Monitor

By asermnasr

AGENTMonitoring

descriptionDescription

Scrapes detailed product information from Amazon listings, including price, images, availability, ratings, and seller details using a product ASIN.

data_objectVariables

asinstring

B0CG5VDC8P

settingsBehavior & Action Config

Wait Time (ms)3
Rotate UAfalse
Rotate Proxiesfalse
Rotate Viewportfalse
Human Typingfalse
Shadow DOMtrue
Disable Recordingfalse
Stateless Execfalse

Stealth Features

fatigue
allowTypos
deadClicks
overscroll
idleMovements
naturalTyping

account_treeAutomation Steps

No explicit actions defined in configuration.

outputExpected Output

titlepriceimage_urlsavailabilityratingrating_countsold_byships_from
Amazon Basics Smart A19 LED Light Bulb, Color Changing, 9W (60W Equivalent), 800LM, Works with Alexa Only, WiFi 2.4 GHz, No Hub Required, Mood Lighting, Energy Efficient, 1-Pack
$10.20
https://m.media-amazon.com/images/I/71InrzITFhL._AC_SY450_.jpg,https://m.media-amazon.com/images/I/71InrzITFhL._AC_SX679_.jpg,https://m.media-amazon.com/images/I/71InrzITFhL._AC_SY355_.jpg,https://m.media-amazon.com/images/I/71InrzITFhL._AC_SX569_.jpg,https://m.media-amazon.com/images/I/71InrzITFhL._AC_SX425_.jpg,https://m.media-amazon.com/images/I/71InrzITFhL._AC_SX522_.jpg,https://m.media-amazon.com/images/I/71InrzITFhL._AC_SX466_.jpg
In Stock
4.4
38062
Amazon Resale and Fulfilled by Amazon
Amazon

codeExtraction Script

// Helper to safely get text
const getSafeText = (el) => {
    if (!el) return "";
    const text = el.innerText || el.textContent || "";
    return text.trim().replace(/\s+/g, ' ');
};

// 1. Title
const title = getSafeText(document.querySelector('#productTitle')) || null;

// 2. Price
const priceEl = document.querySelector('.a-price .a-offscreen') || 
                document.querySelector('#price_inside_buybox') ||
                document.querySelector('.a-price-whole');
const price = priceEl ? getSafeText(priceEl) : null;

// 3. Image URLs
let image_urls = [];
const imgEl = document.querySelector('#landingImage');
if (imgEl) {
    const dynamicData = imgEl.getAttribute('data-a-dynamic-image');
    if (dynamicData) {
        try {
            const imgMap = JSON.parse(dynamicData);
            image_urls = Object.keys(imgMap);
        } catch (e) {
            image_urls = [imgEl.src];
        }
    } else {
        image_urls = [imgEl.src];
    }
}

// 4. Availability
const availability = getSafeText(document.querySelector('#availability')) || null;

// 5. Ratings (Average & Count)
let rating = null;
let rating_count = null;

// Get the average stars (e.g., "4.5 out of 5 stars")
const ratingEl = document.querySelector('#acrPopover') || document.querySelector('.a-icon-star');
if (ratingEl) {
    const ratingText = ratingEl.getAttribute('title') || getSafeText(ratingEl);
    // Extract just the number (e.g., "4.5")
    const match = ratingText.match(/([0-9.]+)\s*out of/i);
    if (match) rating = match[1];
}

// Get the total count (e.g., "12,345 ratings")
const countEl = document.querySelector('#acrCustomerReviewText');
if (countEl) {
    const countText = getSafeText(countEl);
    // Remove commas and get the number
    rating_count = countText.replace(/[^0-9]/g, '');
}

// 6. Seller and Shipper
let ships_from = null;
let sold_by = null;

// Strategy A: Tabular Buybox
const buyboxRows = document.querySelectorAll('#tabular_feature_div tr, .tabular-buybox-container tr');
buyboxRows.forEach(row => {
    const label = getSafeText(row.querySelector('.tabular-buybox-label')).toLowerCase();
    const value = getSafeText(row.querySelector('.tabular-buybox-value'));
    
    if (label.includes('ships from')) ships_from = value;
    if (label.includes('sold by')) sold_by = value;
});

// Strategy B: Merchant Info Fallback
if (!sold_by || !ships_from) {
    const merchantInfo = document.querySelector('#merchant-info');
    if (merchantInfo) {
        const text = getSafeText(merchantInfo);
        
        const sbMatch = text.match(/Sold by\s+([^.]+)/i);
        if (sbMatch && sbMatch[1]) sold_by = sbMatch[1].trim();

        const sfMatch = text.match(/Ships from\s+([^.]+)/i);
        if (sfMatch && sfMatch[1]) {
            ships_from = sfMatch[1].trim();
        } else if (text.toLowerCase().includes('fulfilled by amazon')) {
            ships_from = "Amazon";
        }
    }
}

return {
    title,
    price,
    image_urls,
    availability,
    rating,
    rating_count,
    sold_by,
    ships_from
};

Preset Details

Time Estimate

15s

Created

2/21/2026

Configuration