Check out our new feature:Explore AI Price Intelligence

Back to Blog
Scraping
10 min read

Price Scraping: How It Works, Legality and Build vs Buy

Kerem
July 30, 2026
Blog cover image

How price scraping works stage by stage, what the law actually distinguishes, why it is hard at scale, and when to build a scraper versus buy a price feed.

What is price scraping?

Price scraping is the automated collection of publicly displayed product prices from websites — retailer product pages, marketplace listings and comparison engines — and their conversion into structured records that can be compared against your own catalogue. A price scraper fetches the page, extracts the price and related fields, and writes them to a dataset with a timestamp.

It is the collection layer beneath competitor price monitoring. Everything a pricing team does afterwards depends on how well this step is done.

How does price scraping work?

Six stages. Teams that build their own usually underestimate the last three.

  • Discovery. Find the URLs that need collecting — via category pages, sitemaps, search, or a seed list of SKUs. This is crawling, and it is a different problem from extraction; the distinction is covered in data crawling vs data scraping.
  • Fetching. Retrieve the page. Modern retail sites often render prices client-side, so a plain HTTP request returns markup with no price in it and a headless browser is required.
  • Parsing. Extract price, currency, list price, promotion, stock status, seller, shipping and delivery estimate. Structured data in the page (JSON-LD, microdata) is more stable than CSS selectors when available.
  • Normalisation. Standardise currency, VAT treatment, units and pack sizes. A price is not comparable until you know whether it includes tax and shipping.
  • Matching. Resolve each offer to a canonical product so it can be compared to yours. Product matching is the step that decides whether the dataset is usable.
  • Delivery and monitoring. Write to a warehouse, feed or API — and monitor the pipeline itself, because silent breakage is the normal failure mode.

Is price scraping legal?

General background, not legal advice — the answer depends on your jurisdiction, what you collect, and how. Take a specific programme to counsel.

The distinctions that matter in practice:

  • Public versus gated data. Collecting information a site shows to any visitor is treated very differently from accessing data behind a login or a paywall. US litigation over the past decade has repeatedly turned on that line, most visibly in the long-running dispute between hiQ Labs and LinkedIn, where courts were reluctant to treat scraping of publicly visible pages as computer-intrusion. Credentialed access is a different matter entirely.
  • Contract and terms of use. Terms you actively accept — by creating an account, clicking through, or logging in — can bind you regardless of the data being public. European case law has looked at exactly this: a database that falls outside sui generis protection may still be protected by the contractual terms attached to its use.
  • Database and copyright rights. In the EU, the sui generis database right can protect substantial extractions from a database even when individual facts are not copyrightable. Prices themselves are facts; large-scale reproduction of a structured collection is a different question.
  • Personal data. GDPR applies the moment you collect personal data — seller names that identify individuals, reviewer profiles, contact details. Product prices are not personal data; reviewer identities are. Scope your collection so you do not gather what you do not need.
  • Load and access controls. Aggressive crawling that degrades a service, and circumvention of technical access controls, move a project into materially riskier territory regardless of the data's public status.

The workable posture: collect only public data, respect robots directives and rate limits, avoid authenticated areas, do not collect personal data you have no use for, keep provenance records, and get sign-off before you scale.

What makes price scraping hard at scale?

  • Client-side rendering. Price injected by JavaScript after load; a naive scraper records nothing or the wrong value.
  • Anti-bot infrastructure. Rate limiting, fingerprinting and challenge pages. Handling this responsibly means backing off, not escalating.
  • Geography and currency. Prices differ by country, and by IP within a country. Without controlled geo-context, your dataset silently mixes markets.
  • Variant explosion. Colour, size, pack quantity and seller each change the price. Collapsing them loses the signal; not collapsing them buries it.
  • Layout drift. Retailers redesign. A selector-based scraper degrades quietly, which is worse than failing loudly.
  • Freshness versus cost. Hourly collection across 100,000 SKUs is a different engineering problem from daily collection across 5,000.
  • Silent data quality loss. A pipeline that returns 0 instead of null, or last week's cached price, will not raise an error. It will just make your pricing wrong.

Build or buy?

Building makes sense when scraping is core to your product, you need unusual sources, and you can staff maintenance indefinitely — maintenance being 80% of the total cost, not extraction.

Buying makes sense when you need prices in order to make pricing decisions, not to run a data business. In that case the honest comparison is not licence fee versus zero; it is licence fee versus engineer time, proxy spend, and the cost of decisions made on a feed that broke three weeks ago and nobody noticed.

Two intermediate options are often overlooked:

What does good price data look like?

Whether you build or buy, insist on these fields per record:

  • Canonical product identifier plus the source's own SKU and GTIN
  • Current price, list price, and any active promotion, with currency and tax treatment stated
  • Shipping cost and delivery estimate
  • Stock status and seller identity
  • Marketplace, country and URL
  • Collection timestamp, and the match confidence score

The last two are the ones teams leave out and later cannot work without. Without a timestamp you cannot reason about freshness; without match confidence you cannot separate a real price gap from a matching error.

Where price scraping projects go wrong

  • Extraction treated as the whole problem. The hard parts are matching, normalisation and maintenance.
  • No pipeline monitoring. Coverage and null-rate alerts per source, per day, are not optional. Broken scrapers do not announce themselves.
  • Mixing markets. One dataset containing DE, AT and CH prices without a country field produces nonsense comparisons.
  • Ignoring shipping. Cheapest price plus expensive delivery is not the cheapest offer, and your competitors know that.
  • Scraping more than you need. Every extra source is permanent maintenance. Start with the competitors that actually influence your volume.
  • No legal review. The technical work is usually easier than the sign-off; do the sign-off first.

Getting started

Pick one category and the five competitors that matter in it. Collect daily, store history from day one, and instrument match rate before you build any dashboard.

If the goal is pricing decisions rather than a data platform, skip ahead: competitor pricing datasets and the scraper API give you the same input without the maintenance. For what to do with the output, see price intelligence; for the richest single public source of competitor prices, see comparison shopping engines.

K

Kerem

Strategic Lead, Senkondata

Kerem is a visionary at Senkondata, bringing years of expertise in data engineering and market analysis.

Contact Us

Leave your email address for a detailed demo or overview session, and we will get back to you shortly.