Morrisons UK Grocery Scraper
Pricing
from $3.00 / 1,000 product results
Go to Apify Store
Morrisons UK Grocery Scraper
Scrapes product listings from groceries.morrisons.com — returns names, prices, unit prices, brands, and sizes for any search query.
Pricing
from $3.00 / 1,000 product results
Rating
0.0
(0)
Developer
Siddhant Mehta
Maintained by Community
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Share
Scrape product listings from groceries.morrisons.com by search query. Returns structured data for every product found — including name, brand, price, unit price, size, offer status, and direct product URL.
Features
- Search for any product by keyword (e.g. "beans", "semi skimmed milk", "pasta")
- Multiple queries in a single run
- Uses stable
data-testattribute selectors for reliable extraction - Unit pricing with normalised measures (per kg, per litre, per item)
- Brand detection including Morrisons own-brand labels (Morrisons, The Best, Savers)
- Promotional offer detection with original and current price
- Product weight/size from dedicated size elements
- Configurable result limit per query
Input
| Field | Type | Description | Default |
|---|---|---|---|
queries | string[] | List of search queries | required |
maxResultsPerQuery | integer | Max products per query (1-100) | 20 |
Example input
{"queries": ["baked beans", "whole milk", "sourdough"],"maxResultsPerQuery": 10}
Output
Each result in the dataset contains:
| Field | Type | Description |
|---|---|---|
store | string | Always "morrisons" |
query | string | The search query that produced this result |
name | string | Product name |
brand | string | Brand name (e.g. "Morrisons", "Heinz") |
productId | string | Morrisons product ID |
price | number | Current price in GBP |
unitPrice | number | Price per unit (e.g. per kg, per litre) |
unitPriceMeasure | string | Unit measure (e.g. "per kg", "per litre") |
unitSize | string | Product weight/size (e.g. "800g", "6 x 415g") |
onOffer | boolean | Whether the product has a promotional offer |
offerDescription | string | Offer details (e.g. "Now £4.50, Was £5.25") |
imageUrl | string | Product image URL |
productUrl | string | Direct link to product page on groceries.morrisons.com |
scrapedAt | string | ISO 8601 timestamp |
Example output
{"store": "morrisons","query": "beans","name": "Heinz Baked Beans in a Rich Tomato Sauce 6 x 415g","brand": "Heinz","productId": "107311159","price": 4.50,"unitPrice": 1.81,"unitPriceMeasure": "per kg","unitSize": "6 x 415g","onOffer": true,"offerDescription": "Now £4.50, Was £5.25","imageUrl": "https://groceries.morrisons.com/images-v3/.../300x300.jpg","productUrl": "https://groceries.morrisons.com/products/heinz-baked-beans-in-a-rich-tomato-sauce-6-x-415g/107311159","scrapedAt": "2026-03-28T12:00:00.000Z"}
Use cases
- Price monitoring — track Morrisons prices over time and detect price drops
- Basket comparison — compare grocery costs across UK supermarkets
- Market research — analyse competitive pricing and product ranges
- Deal alerts — build notifications for promotional offers
- Shopping apps — power product search and comparison features
Notes
- Morrisons uses
data-testattributes (e.g.fop-title,fop-price,fop-offer-text) which are more stable than CSS class selectors - Search results may include a small number of sponsored products at the top
- No bot detection or login required for search pages