Waxie Products Scraper

Two item numbers,
and no price at all.

Waxie is a sanitary-supply wholesaler, so its item pages carry what a purchasing system needs - a product name, a description, the distributor's item number and the manufacturer's - and show a price only to a signed-in account. This service returns the seventeen columns. The identity fields come back; the money fields do not, and we say which before you sign up.

one-time 500 free rowsthen $0.002 per rowtwo distinct identifier columnsCSV · JSON · Excel
How it works

A list of URLs in, a spreadsheet out.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the Waxie Products Scraper.
  3. STEP 3Paste the Waxie item URLs you want, one per line.
  4. STEP 4Choose your output format (CSV / JSON / XLSX).
  5. STEP 5Run the job.
  6. STEP 6Download the results - one row per URL, seventeen columns.
What to expect

The things worth knowing before you run it.

The two identifier columns hold different numbers

This is the useful thing about a distributor. On our real row sku_code was 1033704 - Waxie's own item number - and sku was 80009, which the page labels in as many words as Manufacturer Item. Both are on the live page and both are in the export. Every page in this family tells you to check both before choosing a join key; here is the case that shows why.

The price columns come back empty

price, parsed_price, currency and availability were empty on both of our real rows. Fetch the item page yourself and you will see why: an anonymous visitor gets the product and a sign-in prompt, not a figure. Waxie's published service note says the same - a wholesale site where some data cannot be read without a login. We do not log in, so we do not have it.

Prices are per branch, not per catalogue

The item URLs carry a warehouse-id. That is a wholesaler quoting against a particular branch's stock and a particular account's terms, which is a second reason there is no single public number to read - even the signed-in figure is specific to who is asking and from where.

Two runs, same URL, different completeness

Our two successful runs submitted the same item five minutes apart and both returned status: ok. The first came back with the product name and nothing else; the second added the description, both identifiers and the canonical URL. Same page, same day, different depth - so treat a thin row as something to retry rather than as proof the field is absent.

The manufacturer is on the page but not in the brand column

The live item page names its manufacturer, and our brand column was empty on both real rows anyway. We are recording that as a gap rather than explaining it away. If you need the manufacturer, the description text is where it tends to appear.

Every row says what happened

The last column is status, written by our exporter rather than by the site. Across our four runs it took two values - ok and http 404, the latter on a placeholder address that does not exist - so a row that failed still arrives carrying the reason.

What you get back

Seventeen columns, eight of them populated.

Read from the header row of a real export, in sheet order. Where we observed a column carry a value, this says what the value looked like. Where we observed it empty on every row, it says that instead.

query
The Waxie URL you submitted, echoed on every row so an export covering many items stays separable. On all of our rows this matched url exactly.
sku_code
Waxie's own item number - 1033704 on our real row, the number the item page leads with. This is the one to use when you are talking to Waxie about an order.
product_url
The canonical item page. Populated on our fuller run and equal to the submitted URL there; empty on the thinner run of the same item, which is part of why that inconsistency is worth knowing about.
name
The product title as the page states it - WAXIE MULTI-TASK WIPES BUCKETS on our row. Expect distributor shorthand in capitals rather than marketing prose.
description
The longer product text. On our row it carried the pack breakdown - the case quantity and what the item is used with - which on a wholesale catalogue is often the only place the pack size is written down at all. Give it a wide column or a text type.
parsed_price
Intended to carry the price as a bare number. See the note below the table.
price
Intended to carry the price as displayed.
currency
Intended to carry the currency.
availability
Intended to carry stock status. Stock here is per branch - the URLs carry a warehouse id - and a branch's stock is not published to an anonymous visitor.
rating
Intended to carry an average rating. A wholesale catalogue for trade buyers generally does not carry consumer ratings, so write the importer to accept the empty cell.
reviews
Intended to carry the review count, with the same caveat as rating.
images
Intended to carry every image on the page.
brand
Intended to carry the manufacturer. Empty on both real rows, even though the live item page prints a manufacturer name. Recorded as a gap; look in description if you need it.
sku
The manufacturer's item number - 80009 on our real row, and labelled as such on the page. Different from sku_code above, and the one to use when you are matching the same physical product across two different distributors.
url
The address the row was produced from. Equal to query on every row we hold, which tells you these requests were served without redirecting.
image
Intended to carry the primary image on its own.
status
A per-row flag written by our exporter, not by Waxie. Across our four runs it took two values: ok and http 404. Reconcile on this column rather than on row count.

Seventeen columns per row · CSV, JSON or Excel

Why the money columns are empty, stated plainly. We hold four runs of this service. Two submitted a real Waxie item and returned status: ok; two submitted a placeholder address that does not exist and returned http 404. On both real rows, price, parsed_price, currency and availability were empty strings - and so were rating, reviews, brand, image and images. That is a property of the source rather than a defect here: fetching the item page directly returns a working page of about 131 KB that shows the product, both item numbers and a sign-in prompt, and no price to anyone who is not logged in. Waxie's own published service note describes it as a wholesale site where some data cannot be read without a login, which is the same fact from the other direction. One more caveat worth your attention: our two successful runs were the same URL five minutes apart, and the earlier one returned only the product name while the later one returned the description, both identifiers and the canonical URL. Same page, same day, different depth. Retry a thin row before concluding a field is empty.

Common workflows

What two identifiers let you do.

Cross-distributor matching

Find the same product in someone else's catalogue

sku is the manufacturer's number, so it survives the move from one distributor to another where sku_code does not. That is the join key for asking whether the item you buy from Waxie is the item a competitor lists - a question a name match will not answer reliably on capitalised trade descriptions.

Procurement · Sourcing
Catalogue reconciliation

Line your purchasing records up against theirs

sku_code is the number Waxie uses on its own system, which makes it the one to reconcile purchase orders and invoices against. Keep both columns and you can talk to the distributor in their numbering and to your own database in the manufacturer's.

Purchasing · Records
Pack-size capture

Get the case quantity out of the description

On a wholesale catalogue the pack breakdown is frequently written into the product text rather than exposed as a field, and our row was no exception. description is where to parse it from if your system needs a case quantity beside the item.

Ecommerce ops · Catalogue
Assortment tracking

Watch what a distributor lists

Run a set of item URLs on a schedule and keep name, description and both identifiers with the run date. You will not get price movement from this, but you will see products renamed, re-described or withdrawn, which a wholesaler rarely announces.

Category research · Assortment
Pricing

Pay only for what you actually use.

Free tier

First 500 rows are free

One time, on signup. No card, and nothing to cancel afterwards.

One-time, on signup
Rate

then $0.002 per row

Billed on rows actually returned. A row that comes back with a status other than a successful one is not a row of product data, and is not charged as one.

Billed on rows returned
No subscription

Nothing recurring

Credits do not expire on a monthly cycle. Run a catalogue sweep in March and nothing until September if that is the shape of the work.

No monthly expiry
10% off your first paid run.Use code LIVESCRAPER10 at checkout.
Register
Pairs well with

Other catalogues, the same seventeen columns.

The legal bit

Is it legal to scrape Waxie?

Product facts on a publicly reachable page are ordinary competitive information. The caveats worth naming here are about the sign-in boundary and about a site that publishes no robots file.

A product name, a description and an item number are facts about goods offered for sale. Reading them from a page served to any visitor is the same activity a buyer performs by hand, at a useful speed. Nothing in the seventeen columns describes a person: no name, no email address, no phone number, no account - so the data-protection questions that shape our people-facing services do not arise here.

The boundary that matters on this site is the sign-in. Waxie is a wholesaler, and pricing, branch stock and account terms sit behind its Web@Work login - the service's own published note says as much. We do not log in, we do not use anyone's credentials and we do not work around the prompt, so what this service reaches is what an anonymous visitor reaches. That is a real limit rather than a temporary one: if the figure you need only appears once you are signed in as a particular account, nothing here will produce it. Worth being straight about the second point too - shop.waxie.com serves no robots.txt at all, it returns 404. We read that as the absence of an instruction rather than as permission, which is why this service stays on the same footing it uses everywhere else: public pages, anonymous, at a considerate rate.

Our own terms are the same as on every other service here. Publicly available pages only, nothing behind a login, no third-party trackers on the data layer, and exports auto-delete after 30 days. Your first 500 rows are free and need no credit card.

livescraper.app · what shapes a run
One item URL per row
Anonymous access only
Prices stay behind the Web@Work sign-in
No robots.txt published on the site
Exports auto-delete after 30 days
A wholesaler quotes per account and per branch. This service is the anonymous visitor, so it sees neither.
Common questions

What people ask before signing up.

Does the export include Waxie prices?+
No. price, parsed_price, currency and availability were empty on both of our real rows. Waxie is a wholesale site and shows pricing only to a signed-in Web@Work account - its own published service note says some data cannot be read without a login. We do not log in and do not use anyone's credentials, so this service sees what an anonymous visitor sees. No setting will change that.
Why are there two item numbers, and which one do I use?+
They are different things. sku_code is Waxie's own item number - 1033704 on our row - and sku is the manufacturer's, 80009, which the page labels as the manufacturer item. Use sku_code to talk to Waxie about an order, and sku to match the same physical product in someone else's catalogue.
Which columns actually come back populated?+
On the fuller of our two real rows: query, sku_code, product_url, name, description, sku, url and status. Empty on every row we hold: parsed_price, price, currency, availability, rating, reviews, images, brand and image.
Why did two runs of the same URL return different amounts?+
We do not know, and we would rather tell you it happened than hide it. Our two successful runs submitted the same item five minutes apart and both reported ok; the earlier returned the product name alone and the later added the description, both identifiers and the canonical URL. The practical advice is to retry a thin row before concluding a field is empty for that product.
What columns does the export contain?+
Seventeen, in this order: query, sku_code, product_url, name, description, parsed_price, price, currency, availability, rating, reviews, images, brand, sku, url, image and status. One row per item URL you submit.
The page names a manufacturer - why is the brand column empty?+
It should not be, and it was, on both real rows. We are recording that as a gap rather than dressing it up. In the meantime the manufacturer name tends to appear inside description, so that is where to parse it from.
What does the status column mean?+
It is written by our exporter, not by Waxie, and reports whether that row was retrieved. Across our four runs it took two values: ok on the two real item requests and http 404 on two runs that submitted a placeholder address which does not exist. A failed row still arrives carrying its reason.
How much does it cost?+
Your first 500 rows are free, one time, no card. After that it is $0.002 per row, billed on rows actually returned, with no subscription and no monthly expiry on credits.
What formats can I export?+
CSV, JSON or Excel. The seventeen columns and their order are the same in all three.

Get the catalogue as a table.

Name, description and both item numbers for every Waxie URL you submit - and an honest empty cell where the price sits behind a sign-in. Your first 500 rows are free, then $0.002 each.

Activates instantly · no card required

Scrape Waxie product data

Waxie is a sanitary-supply and janitorial wholesaler selling to trade accounts rather than to consumers, and that shapes what an item page can tell you. The useful fields are the ones a purchasing system needs - a product name, a description carrying the pack breakdown, and two separate item numbers - while price, branch stock and account terms sit behind the Web@Work sign-in. The service's own published note puts it plainly: a B2B wholesale site where some data cannot be read without a login.

The two identifier columns are the reason this export is worth having. On the real row we hold, sku_code was 1033704 - Waxie's own item number, the one the page leads with and the one to quote on an order - and sku was 80009, which the page labels in as many words as the manufacturer's item number. Both values appear in the live page, which is how we know the row is genuine rather than a parsing accident. Every scraper in this family advises checking both identifier fields before you choose a join key; Waxie is the case that shows why it matters. The manufacturer's number is what survives a move from one distributor to another, so it is the column to match on when you are asking whether two catalogues list the same physical product. The distributor's number is what reconciles against purchase orders.

What does not come back is money. price, parsed_price, currency and availability were empty on both of our real rows, and so were rating, reviews, brand, image and images. Fetching the item page directly explains the first group: it returns a working page of roughly 131 KB showing the product, both item numbers and a sign-in prompt, with no figure anywhere for a visitor who is not logged in. The item URLs also carry a warehouse identifier, so even the signed-in price is scoped to a branch and an account - there is no single public number for anyone to read. The empty brand is a genuine gap rather than a property of the source, because the live page does print a manufacturer, and we record it as such.

One consistency caveat deserves stating rather than burying. Our two successful runs submitted the same item URL five minutes apart and both reported success, but the earlier returned only the product name while the later added the description, both identifiers and the canonical URL. Same page, same day, different depth. Retry a thin row before you conclude a field is absent for that product. Two runs is also far too small a sample to quote a success rate from, so we do not quote one. Note finally that shop.waxie.com publishes no robots.txt - the request returns 404 - which we treat as the absence of an instruction rather than as permission: publicly available pages only, anonymous, at a considerate rate, no third-party trackers on the data layer, and exports auto-delete after 30 days. Your first 500 rows are free and need no credit card.