Holland Barrett Scraper avatar

Holland Barrett Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Holland Barrett Scraper

Holland Barrett Scraper

Get product and search results from holland and barrett.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

The Netaji

The Netaji

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

1

Monthly active users

7 days ago

Last modified

Share

Holland & Barrett Scraper

Scrape product data from hollandandbarrett.com at scale. Built with Python and Scrapling.

Extracts product listings including price, promotions, ratings, availability, brand, and category — from product URLs, category listings, or keyword searches.

Features

  • Product scraping — full details via JSON-LD on product pages
  • Category listings — paginated scraping of any /shop/{slug}/ URL
  • Keyword search — search H&B by keyword, get paginated results
  • Category slugs — use short slugs like vitamins-supplements/vitamins/vitamin-c
  • Fast, no browser — all scraping uses static HTTP fetcher (SSR HTML parsing)
  • Proxy rotation — uses Apify residential proxies, retries on block (429/403)

Input

The inputs field accepts a mixed list of any of the following:

TypeExample
Product URLhttps://www.hollandandbarrett.com/shop/product/hb-vitamin-c-1000mg-138
Category URLhttps://www.hollandandbarrett.com/shop/vitamins-supplements/vitamins/vitamin-c/
Search URLhttps://www.hollandandbarrett.com/search/?query=vitamin+c
Keywordvitamin c
Category slugvitamins-supplements/vitamins/vitamin-c

Input schema

{
"inputs": [
"https://www.hollandandbarrett.com/shop/vitamins-supplements/vitamins/vitamin-c/",
"fish oil",
"sports-nutrition/protein"
],
"maxItems": 100,
"maxPages": 5,
"fetchDetails": false
}
FieldTypeDefaultDescription
inputsstring[]requiredMixed list of URLs, keywords, or category slugs
maxItemsinteger100Max products per input
maxPagesinteger5Max listing pages to crawl per input
fetchDetailsbooleanfalseFetch full product page for each tile (slower, adds description, GTIN, more accurate data)

Output

Each item in the dataset has _type: "product".

Listing tile (fetchDetails: false)

{
"_type": "product",
"product_id": "6100006588",
"sku": "069976",
"name": "Holland & Barrett Vitamin C 1000mg 240 Tablets",
"brand": "Holland & Barrett",
"url": "https://www.hollandandbarrett.com/shop/product/holland-barrett-vitamin-c-1000mg-240-tablets-6100006588",
"image_url": "https://images.hollandandbarrettimages.co.uk/productimages/HB/{resolution}/069976_A.png",
"price": 17.99,
"currency": "GBP",
"old_price": "£19.99",
"price_per_unit": "£0.07/1 Tablet",
"discount_pct": 10,
"availability": "isAvailable",
"in_stock": true,
"rating": 4.6,
"reviews_count": "312",
"promotion": "May Payday",
"promotion_slug": "may-payday",
"category_path": "Vitamins & Supplements/Vitamins/Vitamin C",
"category_slug": "vitamins-supplements/vitamins/vitamin-c",
"is_marketplace": false,
"vendor": null
}

Full product page (fetchDetails: true)

{
"_type": "product",
"product_id": "069976",
"sku": "069976",
"name": "Holland & Barrett Vitamin C 1000mg 240 Tablets",
"brand": "Holland & Barrett",
"description": "Vitamin C contributes to the normal function of the immune system...",
"url": "https://www.hollandandbarrett.com/shop/product/...",
"image_url": "https://images.hollandandbarrettimages.co.uk/...",
"price": 17.99,
"currency": "GBP",
"availability": "http://schema.org/InStock",
"in_stock": true,
"rating": 4.58,
"reviews_count": 312,
"gtin": "5019781006984",
"mpn": "069976"
}

Examples

Scrape a single product

{
"inputs": ["https://www.hollandandbarrett.com/shop/product/holland-barrett-vitamin-c-1000mg-240-tablets-6100006588"]
}
{
"inputs": ["fish oil", "magnesium"],
"maxItems": 50,
"maxPages": 3
}

Category listing

{
"inputs": ["vitamins-supplements/vitamins/vitamin-c"],
"maxItems": 100,
"maxPages": 5
}

Mixed inputs with full details

{
"inputs": [
"https://www.hollandandbarrett.com/shop/vitamins-supplements/",
"protein bars",
"natural-beauty/skincare"
],
"maxItems": 100,
"maxPages": 3,
"fetchDetails": true
}

Architecture

Input string
parsers.py: classify()
├─ product_url ──────────► api.fetch_product_page() ──► JSON-LD parse
├─ category_url / slug ──► api.fetch_all_category_tiles()
│ │
└─ search_url / keyword ─────────────┘
GET /shop/{slug}/?page=N or
GET /search/?query={q}&page=N
Parse #__LAYOUT__ SSR JSON
→ resolveParamValues → tiles + pagination
(fetchDetails=true) → fetch_product_page() × N

Listings use H&B's SSR HTML — the #__LAYOUT__ script tag contains pre-rendered product tiles with price, rating, promotion, and category data. No browser needed.

Product pages parse application/ld+json structured data for full details.

Pagination is driven by pagination.total from the SSR data (40 products per page).

Running locally

pip install -r requirements.txt
scrapling install --force
python src/main.py

Input is read from storage/key_value_stores/default/INPUT.json when running locally.