Scrape NapaOnline product data
NapaOnline is the online catalogue of a large automotive parts retailer, and this page is published as a negative result rather than as a product description. Our export folder for this service holds seven runs and seven rows, and not one of those rows carries a product name, a price, a part number or an image. Five of them report blocked (needs residential proxy), and all five submitted the same real product URL within a single hour on 3 July 2026 - so in what we hold the refusal is not intermittent, it is consistent. The remaining two rows are 404s against a placeholder address that does not exist and say nothing about this site at all. Reduce it to the attempts that matter and the record is five requests, five refusals.
We checked independently rather than taking the export's word for it. On 12 August 2026 we fetched that product page and the site's own robots.txt from a normal machine with a browser user-agent, and both returned HTTP 403. Neither response was NapaOnline markup: each was a Cloudflare challenge page, titled Just a moment…, marked noindex and nofollow, and declaring a content-security-policy that names Cloudflare's own challenge host. That is a protection layer answering instead of the site. It also means we have never read the robots file, which is why this page quotes nothing from it - not a summary, not a claim about which paths are allowed. Naming a document we have not seen would be worse than admitting we have not seen it. It is worth adding that this is a different vendor from the one guarding another blocked page in our catalogue; we name what we observed and do not generalise beyond it.
What we can offer is the schema. The seventeen columns - query, sku_code, product_url, name, description, parsed_price, price, currency, availability, rating, reviews, images, brand, sku, url, image, status - are read from the header row of a genuine NapaOnline export, and that part of the file is well-formed even when the run returns nothing. They are also byte-identical to the schema behind our Uline, CDW, Waxie, Otto, Newegg, Decathlon and Menards services, so an importer written against any of those will accept a NapaOnline file unchanged if and when rows start arriving. The data dictionary on this page therefore describes what each column is for and states, column by column, that we have not observed it populated. It quotes no fill counts, because there is nothing to count.
One editorial decision deserves stating outright. Several services on this site share this exact schema and return full price data - one of them turned a single category URL into ninety-nine priced rows. It would have been trivial to illustrate this page with their values and let the reader assume. We have used none of them. An auto-parts retailer is a different catalogue from a packaging distributor or a technology reseller, and a number borrowed from one is not evidence about another; it is fabrication with a citation attached. So the page says what our runs said, and where the answer is "we do not have it", it says that. Billing follows rows returned, which means a refused attempt is not a charge, and if the category matters more than the retailer, the rest of the catalogue covers similar ground with real rows behind it.