Bauhaus Scraper for Artikelnummer, Unit Prices and Store Stock

Bauhaus sells decking by the metre, tile by the carton and screws by the pack, so one article carries two prices. We extract both, plus the stock behind each Swedish varuhus.

Bauhaus Scraper
Solutions

Scoping a Bauhaus scraper: units first, stores second

A Bauhaus scraping project starts with two decisions. Which unit should the price arrive in - per piece as the cart shows it, per M2 or per metre as the jamforpris does, or both with the conversion factor. And which of the 25 Swedish varuhus should stock be resolved against, since one article can sit on the floor in Sickla and be absent in Umea.

The rest is ordinary scoping: whole departments, a category subtree, a brand page, or a watchlist of article numbers and barcodes. Listings answer 35 products to a page and quietly serve page one again past the last page, so coverage is planned from category totals, not by walking the pager. Several of the Bauhaus country sites turn plain automated clients away and throttle repeat callers, so anti-bot handling, proxy rotation and CAPTCHA solving are part of the service, not an extra line. Delivery is CSV, JSON, XLSX or an API, with a fixed schema and the source address on every row.

Fields in a Bauhaus product and price record

Four different numbers sit on one Bauhaus article, and confusing them is how these projects go wrong. Artikelnummer is the seven-digit Bauhaus key, printed in the Artikeldata block and reused in the image path, which shards on its first two digits before repeating the number in the file name. EAN-nr is the barcode. The supplier's own article number is held separately and is even exposed as a filter. A fourth id belongs to the shop platform and matches none of the other three.

Article data. Produktnamn, Artikelnummer, EAN-nr, Varumarke for the brand, Produkttyp, Serie, Vikt as gross weight in kilograms, Netto vikt, and Dimensioner. That last one is a parsing trap: the axis labels change with the product, printed as L x B x T on a tile and B x H x D on a refrigerator, so they have to be read rather than assumed. Under it sit the type-specific attributes - Slitageklass for wear class and Halkklass for slip rating on tiles, Frostsaker and underfloor-heating flags, Spanning in volts, Skarbredd as cutting width in centimetres and Area as the lawn a mower suits in square metres, Antal liter for appliances.

Money. The headline figure includes 25 per cent Swedish VAT. Beside it sits Jmf. pris, the jamforpris or comparison price, with the unit it is quoted in - kr/M2 for tile and flooring, kr/M for decking, cable and hose. The record also carries the conversion factor between the two, so a carton at 459.36 kr resolves to 1.44 M2 at 319.00 kr/M2, and the quantity box counts cartons while printing square metres. On promotion the page adds Ord. pris for the ordinary price, Du sparar for the saving, and the date the offer runs to, with a campaign window stored as a start and end date.

Availability. Web stock is a count in pieces, exact up to 99 and then capped as 99+. Choose a varuhus and a second number appears for that store, or the words Ej i lager for absent there. Goods that never reach a shelf are marked Bestallningsvara, the order-in item, or noted as orderable online only, and direct-delivery articles ship from the supplier rather than from a Bauhaus warehouse.

Fields in a Bauhaus product and price record
Energy labels, safety sheets and dirty dimension facets

Energy labels, safety sheets and dirty dimension facets

Past price and stock, Bauhaus publishes the regulated paperwork building products must carry, and it is worth taking whole.

Appliances and lamps hold three separate energy assets: the class arrow as an image, the full label rendered as a picture named after the article number, and the Produktinformationsblad, the product information sheet, as a PDF served from the group product information system on a perfioncloud address. The Dokument tab adds Bruksanvisning, the instruction manual, and Sakerhetsdatablad, the safety data sheet, for anything with chemistry in it. A Sakerhetsinformation block prints the manufacturer name, address, e-mail and telephone, repeats it for the EU representative or importer, and closes with a written hazard note - the disclosure the General Product Safety Regulation requires.

The facets are where a Bauhaus data extract earns its keep, because they are dimensional and they are dirty. Langd, Bredd, Tjocklek, Diameter, Material, Farg, Serie, Sockel for lamp bases and battery platform are all filters. In the tile aisle Tjocklek offers 9 mm, 9,5 mm, 9.5 mm and 0.9 cm as four separate values for what is two thicknesses, Bredd holds both 60 and 600 for one tile, and Slitageklass mixes a bare 4 with PEI 4. Normalising units, decimal separators and scale names is the real work in a building-materials feed, and we do it once in the pipeline instead of leaving it to whoever opens the file.

Two things do not travel with the rest. About 2,000 articles publish no price at all, and reviews come from a third-party widget with reviewer names attached, so we leave them out by default.

Bauhaus in Sweden and the Nordic platform behind it

Bauhaus is a European chain of byggvaruhus - the warehouse-format DIY and building-materials stores that serve homeowners and trades from the same aisle. The group runs 270 stores in 19 countries from a head office in Mannheim, opened its first store in 1960, and reached Sweden in 1997. The Swedish store finder answers with 25 varuhus, and each one carries two identifiers: a store id used in its address under /varuhus/, and a separate inventory id that stock is actually keyed on.

Anyone planning to scrape Bauhaus across borders needs one fact first: the country sites are not a single catalogue. Sweden, Norway and Denmark share a Magento build with one search index per country, and they share a seven-digit article-number space - article 1488452 is the same porcelain tile with the same barcode on bauhaus.se and on bauhaus.no, and only the name and the currency change. Germany and Austria run a different platform, where a product sits at /{slug}/p/{eight-digit id} and a category at /{slug}/c/{id}, on an id space of its own, and where a price can carry a bulk tier for a whole pallet. A Bauhaus scraper needs one design per platform family, not one crawler for the brand.

On the Swedish site the address shape is unusually flat. Every product lives directly off the root as a single slug that packs type, brand, size and pack quantity into one string, as in klinker-aura-canvas-60x120cm-1-44m2-krt. Categories nest instead, as deep as six levels. The sitemap currently lists roughly 80,000 product addresses, against about 2,300 category pages and 413 brand pages under /varumarken/.

Get a Quote
dev_w
25

Developers

customers
500+

Customers worldwide

pages
1 500 000 000+

Pages extracted

stime
15000+

Hours saved for our clients

Plans

Airplane

€199 / one-time

setup fee - included

Data limits100,000
Frequencyone-time
Run timeup to 5 days
Data storing7 days

Helicopter

€169 / mo

setup fee €499

Data limits250,000
Frequencymonthly
Run timeup to 5 days
Data storing14 days

Glasses

€229 / mo

setup fee €499

Data limits1,000,000
Frequencyweekly
Run timeup to 5 days
Data storing30 days

DNA

€549 / mo

setup fee €799

Data limits3,000,000
Frequency3 times daily
Run timesame day
Data storing90 days

Why Bauhaus price data behaves unlike ordinary retail

DIY is the retail vertical where the shelf figure answers almost nothing on its own. Bauhaus sells decking by the metre, tile by the carton, paint by the litre and screws by the pack, so the same article carries a selling unit and a measuring unit at once. Two tile cartons at the same money are not the same price when one covers 1.44 M2 and the other 1.08 M2. That comparison lives in the jamforpris, which is why Bauhaus price monitoring that reads only the cart figure builds a league table that is simply wrong.

The catch is that the unit price is not universal. Of about 79,700 articles in the Swedish index, roughly 3,600 carry a unit price at all - the goods sold by measure. Everything else is priced per piece. A crawler has to keep both columns and record which of them the site itself treats as the headline, because the underlying record declares that too.

Store availability is the second reason. Sacks of mortar, sheets of plasterboard and 3.6 metre boards are collected, not couriered, so a Bauhaus stock feed with no store attached is not actionable. About 15,200 articles ship direct from the supplier and are never held in a store at all, which means a different lead time and a different carriage charge - freight is quoted per product, from 169 kr, and waived above 4,000 kr. Price, unit price, store stock and delivery mode only mean something together.

Related Case Studies

The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days

The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days

Scraping supplement products from iHerb.com with full details, including descriptions and packaging variations.

Learn More about The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days
The Lowest Allegro Prices from 150K Eans Collected

The Lowest Allegro Prices from 150K Eans Collected

Daily scraping of lowest prices for 150K products on Allegro.pl to support marketplace pricing and margin optimization.

Learn More about The Lowest Allegro Prices from 150K Eans Collected
Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset

Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset

Regular monitoring of Ralph Lauren clothing, footwear, and accessories sold across Amazon subdomains: AE, DE, ES, FR, IT, NL, PL, UK.

Learn More about Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset
Our Blog

Reads Our Latest News & Blog

Learn how to use web scraping to solve data problems for your organization

6 E-Commerce Sites Like eBay to Scrape in 2026

6 E-Commerce Sites Like eBay to Scrape in 2026

If you sell online, run a marketplace, or advise e-commerce clients, you already know why eBay matters: it’s one of the few places where big retailers compete side by side with thousands of small merchants and private sellers.

Top 8 E-commerce Websites to Scrape in 2026 (From Amazon to 1688)

Top 8 E-commerce Websites to Scrape in 2026 (From Amazon to 1688)

E-commerce teams do not just need “some” competitor data anymore. They need a continuous stream of real prices, discounts, stock levels, reviews, and seller behavior from the platforms that actually shape their markets.

How to Scrape Amazon Data: Benefits, Challenges & Best Practices

How to Scrape Amazon Data: Benefits, Challenges & Best Practices

Amazon provides valuable information gathered in one place: products, reviews, ratings, exclusive offers, news, etc. So scraping data from Amazon will help solve the problems of the time-consuming process of extracting data from e-commerce.

scrapeit logo

The team behind your Bauhaus product feed

ScrapeIt takes the whole job as a managed service. We design the crawler, run it to your schedule, watch it, and repair it when the site changes shape. Your side receives files or an endpoint on a timetable and keeps no scraping engineers of its own.

We have no connection with Bauhaus. We read robots.txt before planning a crawl, keep request rates polite, and take only what an ordinary visitor is shown. Nothing behind a login is touched, so company account pages and negotiated contract prices stay out of scope, and reviewer names and other personal data are not collected.

FAQ

Does Bauhaus have a public API for product and price data?

No. Bauhaus runs no developer programme and documents no product API for the Swedish shop. The addresses a developer tries first, developer.bauhaus.se and api.bauhaus.se, do not resolve; the GraphQL endpoint refuses callers without a token; and the one stock platform route that answers openly returns the shop currency and nothing else. What is genuinely public is the site itself: the sitemap index, the flat product addresses, the category tree, the store finder, and every field the Artikeldata, Dokument and Sakerhetsinformation blocks render. A Bauhaus API from us is built on exactly that and delivered as a documented endpoint of our own.

Which Bauhaus country site should a scraper target?

It depends on the market, because the sites are not one system. Sweden, Norway and Denmark share a platform and a seven-digit article-number space, so a Nordic comparison joins cleanly on article number plus EAN: 1488452 is the same tile on bauhaus.se and bauhaus.no. Assortments only partly overlap, though - many Swedish numbers return nothing in Norway, and Danish-only numbers exist. Germany and Austria run a separate platform that puts an eight-digit id of its own in the address, so they need their own crawler. Never join on product name or slug, because the name is translated per country.

How do you handle Bauhaus products sold by the metre or square metre?

We keep both prices and the factor between them. Every row carries the cart price for the selling unit - a carton, a board, a pack - the jamforpris with its unit string, and the conversion, so 459.36 kr for a carton, 319.00 kr per M2 and a factor of 1.44 all sit in one record. Pack sizes buried in the product name are parsed into their own columns too: 50st/frp for fifty pieces to a pack, 1,44M2/KRT for the coverage of a carton, 3,6M for a board length. Where an article has no unit price, the field stays empty rather than being guessed.

Can you extract Bauhaus stock for a specific varuhus?

Yes, for the stores you nominate. Availability resolves twice: a web warehouse count in pieces, exact up to 99 and then shown as 99+, and a per-store figure that only appears once a varuhus has been chosen. We hold your store panel fixed so a series stays comparable from week to week, and stamp the store onto every row beside the web figure and the delivery mode. Cadence follows the question - daily for price and stock monitoring, weekly for promotions and campaign end dates, monthly for range and attribute audits.

Is scraping Bauhaus legal, and what about personal data?

We collect public pages only, at polite request rates, and we read robots.txt first: it closes the checkout, customer, wishlist, review and internal search paths, and we stay out of them. Nothing behind a login is touched, so business account pages and negotiated contract prices are not gathered. Reviews carry reviewer names, and we leave them out by default. What we ship is product, price, unit price, stock, attribute and document data that any visitor to Bauhaus can see. Where a client needs something we cannot reach that way, we say so during scoping rather than afterwards.

How does it Work?

Step 1 - Make a Request

You share your needs, expectations, and desired timeframe. We’ll suggest the best solution based on your request and budget.

Step 2 - Configuring Custom Web Crawlers

Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.

Step 3 - Collect and Deliver

Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.

Step 4 - Maintain and Support

Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.

Request a Quote

Tell us more about you and your project information.
Which sites, which fields, how often. A couple of lines is enough.

We reply within 1 business day. No obligation.

scrapiet

Scrapeit Sp. z o.o.
10/208 Legionowa str., 15-099, Bialystok, Poland
NIP: 5423457175
REGON: 523384582