---
title: "How to Parse Product Data from URLs"
date: 2026-11-11
lang: en
url: https://archiboard.ru/blog/how-to-parse-product-data-from-urls
---

# How to Parse Product Data from URLs

Copying a price, a SKU and three photos from a supplier page into a spreadsheet takes a couple of minutes. Do that for 150 items across a residential project and a working day is gone, with typos as a bonus. This guide shows how to parse product data from URLs reliably: check for structured data first, extract the fields you need, fall back to layout parsing when the markup is missing, and clean the result so it feeds straight into an estimate.

What you need before step 1:

- A list of supplier product URLs (one per product, not category pages)
- A browser with developer tools, or a Python environment if you want to script it
- A target format for your data: name, SKU, price, currency, images, dimensions
- A rule for your base currency, so prices can be compared

## Why Parsing Product URLs Beats Manual Entry

Manual entry fails in three predictable ways. It's slow. It introduces errors, like a swapped digit in a SKU or a price copied with the wrong currency symbol. And it goes stale the moment you finish, because nobody re-checks the supplier page halfway through procurement.

Learning how to parse product data from URLs turns each one into a consistent record. Tutorials from [Oxylabs](https://oxylabs.io/blog/how-to-scrape-amazon-product-data) and [Zyte](https://www.zyte.com/blog/how-to-extract-data-from-a-website/) show the general pattern: request the page, locate the fields, store them in a structured format. The same logic applies to interior products, whether you write the script yourself or use a tool that does it for you.

For a designer, the payoff isn't elegance. It's consistency. When every product arrives with the same fields, you can sort by price, group by room, and catch the one lamp priced in dollars among forty priced in euros. That's the difference between a shopping list and a working estimate.

## Step 1: Check Whether the Supplier Page Has JSON-LD Product Data

Before you write a selector or learn a new tool, find out whether the page already hands you clean data. Many supplier sites embed structured data in a script tag with the type `application/ld+json`. It sits apart from the visible layout and exists so search engines and other systems can read the product consistently.

To check, open the product page, view the page source, and search for `ld+json`. If you find a block, read it. You're looking for a `Product` type, usually with a nested `Offer` that holds the price. A free [JSON-LD extractor and schema checker](https://www.ysskrishna.space/tools/json-ld-extractor) can pull these blocks out for you and flag what's present, which helps when the page source is a wall of minified code.

Two cautions. Not every site publishes structured data, and tools that rely on it return nothing for pages without markup. And a page can carry several schema types at once (breadcrumbs, organisation, product), so make sure you're reading the `Product` block and not something next to it.

Run this check on one product from each supplier, not every URL. Suppliers usually use one template across the whole catalog, so a single result tells you how the rest will behave.

## Step 2: Extract Name, SKU, Price, and Images from Structured Data

When the JSON-LD is there, extraction is simple because the fields are labelled. A tool such as [an e-commerce schema extractor](https://apify.com/physealabs/ecommerce-schema-extractor) reads name, price, currency, availability, brand, SKU, GTIN, rating and images from schema.org JSON-LD, microdata and OpenGraph, which covers most of what a designer needs.

If you'd rather script how to parse product data from URLs yourself, the process is short. Fetch the page, find every `ld+json` script, parse each as JSON, and pick out the object whose type is `Product`. Then read these fields:

- **name**: the product title
- **sku** or **gtin**: the identifier you'll quote on purchase orders
- **brand**: the manufacturer
- **image**: one URL or a list of URLs
- **offers**: the price, the currency and the availability

Watch the price and currency pair. They're separate fields, and treating the bare number as euros is exactly how a budget quietly goes wrong. Capture both every time.

Check how images are listed, too. Some sites give a single hero image, others a full gallery. For presentation boards you want the highest-resolution version, so look at the URL pattern and see whether a larger variant exists.

The advantage of this route is stability. Because structured data lives in its own script tag, a site redesign that changes the layout rarely breaks it, so your parsing is far less brittle than anything built on selectors.

## Step 3: Fall Back to Layout Parsing and Handle Blocked or JavaScript Pages

Some pages have no usable structured data. In that case you parse the visible layout, locating elements by their tags and CSS classes. A guide on [Python web scraping for product information](https://rola-ip.co/blog/python-web-scraping-for-product-information/) shows this style, using specific selectors such as a product-title heading to pull the name.

Learning how to parse product data from URLs with layout parsing works, but it's fragile. Selectors depend on how the page is built, so when the supplier updates their template, your extraction can silently return nothing or grab the wrong element. Keep your selectors in one place so they're easy to fix, and spot-check the output whenever a supplier relaunches their site.

Two further obstacles come up often:

- **Blocking.** Large retailers will refuse a plain script request. Sending realistic request headers helps, though some sites need more than that.
- **JavaScript rendering.** If the price or gallery only appears after the page runs scripts, a simple request sees an empty shell. For those pages you need a headless browser such as Playwright or Selenium, which loads the page the way a person's browser would before you read it.

If that sounds like more engineering than a design studio wants to own, fair enough. This is the gap ArchiBoard's AI-powered Web Clipper is built for: it extracts photos, prices and SKUs from a supplier URL without you maintaining selectors or rendering setups. Whatever route you choose, test it on a handful of real URLs from each supplier before trusting it on a full project. Success on one site says little about the next.

## Step 4: Normalise Currency, Remove Duplicates, and Feed Estimates

Knowing how to parse product data from URLs is only half the job, because raw extraction isn't usable data yet. The last step makes it comparable.

**Normalise currency.** Store the original price and currency as captured, then convert to your project's base currency using a rate you record along with the date. Keep the original figure, because rates move and suppliers invoice in their own currency. ArchiBoard handles this with live multi-currency estimates, so each line converts into the project currency without a second spreadsheet.

**Remove duplicates.** The same product often appears under several URLs: tracking parameters, colour variants, regional domains, trailing slashes. Strip query strings you don't need, lower-case the host, and use the SKU or GTIN as your primary key where one exists. Two records with the same SKU from the same supplier are almost certainly one product.

**Check the fields that matter for interiors.** Structured data rarely carries trade attributes like dimensions, finish or lead time, so these may need a manual pass or a read of the description text. Flag any record missing a price or SKU so it doesn't slip into an estimate as a zero.

**Feed the estimate.** Once records are clean, they belong against rooms, not in a flat list. Allocate each product to a room, set quantities, and let totals roll up per room and per project. If you're sourcing flooring, for instance, a clean record set makes comparing options in the [parquet catalog](/catalog/parquet) or a [parquet flooring supplier database](/blog/parquet-flooring-supplier-database) much quicker, since every candidate shows the same fields side by side.

To skip the plumbing, you can browse the [shared product catalog](/catalog) of 62,000-plus items that already carry brands, prices and dimensions, or [create a free Starter account](/register) and clip your first supplier URL. Either way, the principle holds: decide your fields once, capture them consistently, and let the numbers do the arguing.
