Ferguson Products Scraper

Marked blocked.
Never actually tried.

Our own service catalogue records this one as blocked. Our export contains nothing to check that against - both runs submitted a placeholder address rather than a Ferguson URL. And the site's robots.txt read cleanly for us. Three pieces of information, no conclusion, and we would rather publish that than pick the tidiest one.

2 runs, 0 against ferguson.comthe catalogue says Blocker - we have no run to confirm itrobots.txt read cleanly and allows product pathsbilled on rows returned
How it would work

The job shape, for when you test it.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the Ferguson Products Scraper.
  3. STEP 3Paste the Ferguson URLs you want, one per line.
  4. STEP 4Choose your output format (CSV / JSON / XLSX).
  5. STEP 5Run the job.
  6. STEP 6Read the status column first - on this service it is the only column we have ever seen carry anything.
What we actually found

Everything below is from our own runs and checks.

Neither run ever addressed ferguson.com

Both rows we hold submitted the same placeholder address - the fictional example URL that appears across this whole family of exports - and both returned http 404, which is what a fictional address returns. That confirms the exporter runs. It says nothing whatsoever about Ferguson.

Our catalogue says blocked. We cannot confirm it

The internal record for this scraper carries the strongest negative status in that sheet, with a note that it needs a residential proxy. We are reporting that because it is a real record and it is not ours to hide. But it is someone else's finding, and our own export contains no attempt to weigh against it - so this page reports it as a claim rather than converting it into a measurement.

And the site's robots.txt read cleanly

We fetched it ourselves on 12 August 2026: HTTP 200. Read with a proper group matcher, it carries one group for an advertising crawler and a general group of 57 rules, with no blanket exclusion, and a product path is allowed. That does not mean the service works - a robots file is a stated preference, not a doorway - but it does mean the obstacle, if there is one, is not this.

Three sources, and they do not agree

A catalogue note saying blocked, an export containing no attempt, and an open robots file. Resolving that into a single confident sentence would be the easy move and the dishonest one. Elsewhere in this catalogue we publish real refusals with timestamps; here we publish the gap, because that is what we have.

The column list is real; the rows are not

The seventeen columns below come from the header row of a genuine Ferguson export - that part of the file is well-formed even when the run returns nothing. You can write an importer against the schema today. What you cannot do is check it against Ferguson data, and the dictionary says so column by column rather than describing values we have never seen.

So a test costs nothing but five minutes

Billing follows rows actually returned. If this source matters to your work, a small job settles in one attempt a question three sources could not settle between them - and if it comes back blocked, you will have the timestamped evidence we do not.

What the schema says

Seventeen columns, none of them observed populated.

Read from the header row of a real Ferguson export, in sheet order. Every description below is about what the column is for. Where our other catalogue pages quote fill counts from a run, this one cannot: no run of ours ever reached the site.

query
The Ferguson URL you submitted. On our runs this and status were the only fields carrying anything - and what they carried was the placeholder address we sent.
sku_code
Intended to carry Ferguson's own item number. Not observed. On sibling services this column holds the seller's number and is often a segment of the product URL.
product_url
Intended to carry the canonical product page. Not observed. Empty on both rows.
name
Intended to carry the product title as the listing states it. Not observed.
description
Intended to carry the longer product text. Not observed. On sibling catalogues this ranges from a full paragraph to a copy of the name.
parsed_price
Intended to carry the price as a bare number, for arithmetic. Not observed. No Ferguson price appears anywhere on this page, because we have never received one.
price
Intended to carry the same price as displayed, with symbol. Not observed. A trade distributor often shows a different figure to an account holder than to a visitor, so if rows do arrive, establish which one this column holds before comparing it with anything.
currency
Intended to carry the currency the price is quoted in. Not observed.
availability
Intended to carry stock status. Not observed. A distributor with branch inventory publishes availability per location, which would make this the column needing most care once it arrives.
rating
Intended to carry an average customer rating. Not observed.
reviews
Intended to carry the review count behind that rating. Not observed.
images
Intended to carry every image on the listing, semicolon-separated on the services where it is populated. Not observed.
brand
Intended to carry the manufacturer. Not observed. A trade distributor carries many third-party makers, so this column would be worth having.
sku
Intended to carry a second identifier - on our reseller pages, the manufacturer's part number as distinct from the seller's. Not observed, so we cannot tell you whether Ferguson fills it differently from sku_code.
url
The address the row was produced from. Populated on both of our rows, because it is what we submitted rather than something the site returned.
image
Intended to carry the primary image on its own. Not observed.
status
A per-row flag written by our exporter, not by Ferguson. Across our two runs it took one value: http 404, on both rows, from a placeholder address that does not exist. Reconcile on this column - and on this service, treat it as the first thing to read.

Seventeen columns per row · CSV, JSON or Excel

This page rests on a distinction between three kinds of statement, and it is worth being explicit about which is which. First, what we measured: two runs, two rows, both against a fictional placeholder address, both returning a 404, every content column empty. That is a fact about our export and not about Ferguson. Second, what someone else recorded: our internal service catalogue marks this scraper with its strongest negative status and notes that it needs a residential proxy. That is a real record, and we report it - as a claim, not as a result of ours. Third, what we checked directly: the site's robots.txt answered a plain request on 12 August 2026, carries no blanket exclusion for general crawlers, and permits product paths. Those three do not add up to a conclusion, and we are not going to manufacture one. The seventeen columns themselves are real - they come from the header row of a genuine export and are byte-identical to the schema our Gemplers, Uline, CDW, Waxie, Otto, Newegg and Decathlon services use - so an importer written against any of those will accept a Ferguson file unchanged if and when rows arrive.

What to do instead

Where this leaves your project.

Settle it yourself

One small run answers what three sources could not

This is the rare page where a five-minute test is worth more than anything we can write. Submit a few Ferguson URLs and read status: either you get rows, or you get a timestamped refusal - which is exactly the evidence our export is missing. Billing follows rows returned, so a failed attempt costs nothing.

Verification · Low cost
Adjacent sources

Price the category somewhere with rows behind it

If the question is what plumbing, HVAC and facility supplies cost rather than what Ferguson specifically charges, our Gemplers, Uline and Fastenal services cover that ground on the same seventeen columns - and each of those pages reports real fill counts from real runs.

Procurement · Substitution
Write the importer now

Build against the schema, not the rows

The column list is stable across this whole family of services. Write and test your loader today against a sibling export and point it at Ferguson later without a rewrite - the header row is the same seventeen names in the same order.

Engineering · Planning
Keep the evidence

Whatever happens, keep the export

If your test does come back blocked, the row that says so with a timestamp is a better record than an empty file - and better evidence than the catalogue note this page had to report second-hand. That is what the status column is for.

Audit · Records
Pricing

Rows returned, not attempts made.

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, which is what makes settling this question cheap: if nothing comes back, nothing is charged.

Billed on rows returned
No subscription

Nothing recurring

Credits do not expire on a monthly cycle, so nothing drains while a source's status is unresolved.

No monthly expiry
10% off your first paid run.Use code LIVESCRAPER10 at checkout.
Register
Try these instead

Same seventeen columns, with rows in them.

The legal bit

Is it legal to scrape Ferguson?

Nothing has been collected here, so for us the question is theoretical. The one thing we could check came back permissive, which is worth stating precisely because it cuts against the catalogue note above it.

Prices, product names and catalogue numbers on a publicly reachable listing are ordinary commercial facts, and reading them at a considerate pace is the same activity a buyer performs by hand. 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.

What is specific to Ferguson is that we have an assertion and no evidence. Our internal catalogue marks the service with its strongest negative status and notes that it needs a residential proxy; our export contains no request against the site to weigh against that; and the site's own robots.txt answered a plain request with HTTP 200 on 12 August 2026, carrying no blanket exclusion for general crawlers and permitting product paths when read with a proper group matcher. An open robots file is not a promise that a scraper will succeed - bot protection and a robots file are different layers, and we have tested neither here - but it does mean the stated preference is not the obstacle. One further caution if rows ever do arrive: a trade distributor often shows a different price to an account holder than to a visitor, so establish which figure a price column holds before comparing it with anything.

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. Billing follows rows returned, so an attempt that is refused is not a charge.

livescraper.app · what our runs returned
2 runs, both on a placeholder address
0 requests ever sent to ferguson.com
Our catalogue marks the service Blocker - unverified by us
robots.txt read cleanly and allows product paths
Billed on rows returned - testing costs nothing
Three sources, no conclusion. We publish the gap rather than close it with someone else's word.
Common questions

What people ask before signing up.

Does this service return Ferguson data today?+
We do not know. Both runs we hold submitted a fictional placeholder address rather than a Ferguson URL and both returned http 404, which is what a fictional address returns. We have no evidence about this service in either direction.
But your catalogue says it is blocked.+
It does, with the strongest negative status in that sheet and a note that a residential proxy is needed. We report that because it is a real record. What we will not do is present it as our finding: it came from someone else, our export contains no attempt to weigh against it, and a claim is not a measurement.
What did the direct check show?+
That the site's robots.txt answered a plain request with HTTP 200 on 12 August 2026. Read with a proper group matcher it carries one group for an advertising crawler and a general group of 57 rules, with no blanket exclusion, and a product path is allowed. That is a stated preference, not proof the scraper works - bot protection is a separate layer we did not test.
So is it blocked or not?+
Unresolved, and this page says so rather than choosing. A catalogue note saying blocked, an export with no attempt, and an open robots file do not add up to an answer. One small run of your own would settle it - which is the honest recommendation here.
Why publish the page at all?+
So the state of knowledge is findable. A missing page tells you nothing. This one tells you exactly what we hold, exactly what someone else recorded, and exactly what a direct check showed - enough to decide whether to spend five minutes finding out.
Is the column list real?+
Yes. The seventeen columns come from the header row of a genuine Ferguson export and are identical to the schema used by our Gemplers, Uline, CDW, Waxie, Otto, Newegg and Decathlon services. An importer written against any of those will read a Ferguson file without changes. What it will not find is populated rows.
Why don't you show example values?+
Because we have none for Ferguson, and the alternative would be to borrow them from a sibling service on the same schema. Those services cover agricultural supply, packaging, industrial supply and technology resale. Their prices are not evidence about a plumbing and HVAC distributor, and presenting them here as illustration would be inventing data.
Will a run that returns nothing cost me anything?+
No. Billing follows rows actually returned. That is what makes settling this question cheap.
What formats can I export?+
CSV, JSON or Excel, the same as every other service here. The seventeen columns and their order are identical in all three.

An open question, stated as one.

Our catalogue says blocked, our export says nothing, and the site's robots.txt says the path is open. One small run would settle it, and a run that comes back empty bills nothing.

Billed on rows returned · a refused attempt is not a charge

Scrape Ferguson product data

Ferguson is a large distributor of plumbing, HVAC and waterworks supplies, and this page is published in an unusual state even by the standards of the negative results elsewhere in this catalogue: we hold an assertion that the service is blocked, and no evidence of our own either way. Our export folder contains two runs and two rows. Both submitted the same fictional placeholder address that appears across this whole family of exports rather than a Ferguson URL, and both returned a 404 - which is what a fictional address returns. Every content column is empty on both rows. Those runs confirm that the exporter works and confirm nothing at all about the site.

What we do have is a record from elsewhere. Our internal service catalogue marks this scraper with its strongest negative status and notes that it needs a residential proxy. We report that because it is a genuine record and hiding it would be its own kind of dishonesty. But we are careful about what it is: a note made by someone else, which our own export contains no attempt to corroborate or contradict. Two other pages in this catalogue report real refusals - attempts made against real URLs, turned away, with timestamps and a status value recording each one. This page cannot do that, and dressing a second-hand claim in first-hand language would be exactly the kind of quiet overstatement the rest of these pages exist to avoid.

The one thing we could verify ourselves came back permissive, and it is worth stating precisely because it cuts against the claim above it. On 12 August 2026 the site's robots.txt answered a plain request with HTTP 200. Read with a proper group matcher rather than a prefix test, it carries a group for an advertising crawler and a general group of fifty-seven rules, no blanket exclusion for general crawlers, and a product path is allowed. That is not proof the scraper works. A robots file states a preference; bot protection is a different layer sitting in front of the same site, and we tested neither. But it does mean that whatever the obstacle turns out to be - if there is one - it is not an instruction in that file.

So this page ends with an open question rather than a conclusion, and a recommendation that is genuinely yours to act on. Billing follows rows actually returned, so one small job settles in a single attempt what three sources could not settle between them: either rows arrive, or you get a timestamped refusal, which is precisely the evidence our export is missing. If they do arrive, one caution is worth carrying in: a trade distributor often shows a different figure to an account holder than to an anonymous visitor, so establish which one a price column holds before you compare it with anything. And if what you actually need is supply pricing rather than Ferguson specifically, our Gemplers, Uline and Fastenal pages each report real fill counts from real runs. Publicly available pages only, no third-party trackers on the data layer, exports auto-delete after 30 days, and your first 500 rows are free with no credit card.