Tesco Products Scraper avatar

Tesco Products Scraper

Pricing

Pay per usage

Go to Apify Store
Tesco Products Scraper

Tesco Products Scraper

Harvest Tesco product data fast: prices, ratings, availability, and descriptions. Built for price monitoring, market research, and competitive intelligence. Perfect for retail analytics and e-commerce insights at scale.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

Extract Tesco grocery listing results in a clean, analysis-ready dataset. Start from Tesco search, category, and tag-style listing URLs to collect product titles, pricing details, promotions, ratings, and category placement at scale.


Features

  • URL-driven runs - Use one Tesco groceries listing URL as input.
  • Rich product coverage - Collect pricing, unit pricing, rating, promotions, and product identifiers.
  • Flexible Tesco URL support - Accepts search, category, and tag-style listing URL patterns.
  • Internal URL normalization - Non-search listing URLs are converted internally to equivalent Tesco search queries for stable extraction.
  • Pagination support - Crawls multiple pages from the provided URL.
  • Clean dataset output - Automatically omits empty and null-like values from records.
  • Automation friendly - Works well with scheduled runs and downstream integrations.

Use Cases

Price Monitoring

Track product prices and unit prices for recurring queries such as staples, seasonal categories, or branded items.

Promotion Intelligence

Capture promotion texts to monitor discount activity and identify offer frequency trends.

Catalog Research

Build structured datasets for brand-level and aisle-level visibility analysis.

Retail Analytics Pipelines

Export normalized product data to BI tools, data warehouses, or custom reporting systems.


Input Parameters

ParameterTypeRequiredDefaultDescription
urlStringYeshttps://www.tesco.com/groceries/en-GB/search?query=milk&inputType=free+textTesco groceries listing URL (search/category/tag-style page).
results_wantedIntegerNo20Maximum number of products to save.
max_pagesIntegerNo10Maximum number of pages to request from the provided URL.
proxyConfigurationObjectNo{ "useApifyProxy": true }Proxy setup for reliability on larger runs.

Output Data

Each dataset item can include:

FieldTypeDescription
product_idStringTesco product identifier
titleStringProduct title
brandStringBrand name
product_urlStringProduct page URL
image_urlStringProduct image URL
priceNumberCurrent product price
unit_priceNumberUnit price
unit_of_measureStringUnit for unit price
is_for_saleBooleanSale availability flag
statusStringProduct status text
is_sponsoredBooleanWhether result is sponsored
sponsored_ad_idStringSponsored identifier when present
promotion_textsArrayPromotion text values
departmentStringDepartment name
aisleStringAisle name
shelfStringShelf name
review_countIntegerNumber of reviews
ratingNumberAverage rating
gtinStringGTIN code
tpnbStringTesco internal product number
tpncStringTesco internal product code
base_product_idStringBase product identifier
search_termStringResolved search term
pageIntegerResults page number
scraped_atStringISO timestamp

Note: Empty fields are omitted, so records do not include null-like values.


Usage Examples

Search URL

{
"url": "https://www.tesco.com/groceries/en-GB/search?query=milk&inputType=free+text",
"results_wanted": 20,
"max_pages": 3
}

Category URL

{
"url": "https://www.tesco.com/groceries/en-GB/shop/fresh-food/all",
"results_wanted": 50,
"max_pages": 5
}

Tag-Style Listing URL

{
"url": "https://www.tesco.com/groceries/en-GB/shop/vegan/all",
"results_wanted": 40,
"max_pages": 4
}

Proxy-Backed Run for Higher Reliability

{
"url": "https://www.tesco.com/groceries/en-GB/search?query=chocolate&inputType=free+text",
"results_wanted": 80,
"max_pages": 8,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Sample Output

{
"product_id": "257264875",
"title": "Cravendale Filtered Fresh Semi Skimmed Milk 2L Fresher for Longer",
"brand": "CRAVENDALE",
"product_url": "https://www.tesco.com/groceries/en-GB/products/257264875",
"image_url": "https://digitalcontent.api.tesco.com/v2/media/ghs/abc123/product.jpeg?h=225&w=225",
"price": 2.5,
"unit_price": 1.25,
"unit_of_measure": "litre",
"is_for_sale": true,
"status": "AvailableForSale",
"is_sponsored": true,
"promotion_texts": [
"Any 2 for £4 Clubcard Price - Selected Dairy Products 2 Litre"
],
"department": "Milk, Butter & Eggs",
"aisle": "Milk",
"shelf": "Filtered Milk",
"review_count": 208,
"rating": 4.7,
"gtin": "05000181034448",
"tpnb": "54705015",
"tpnc": "257264875",
"base_product_id": "54705015",
"search_term": "milk",
"page": 1,
"scraped_at": "2026-03-26T11:18:12.190Z"
}

Tips For Best Results

Start Small

Use results_wanted: 20 for quick checks, then scale to larger runs.

Use Stable Queries

Keep query wording consistent when building historical trend datasets.

Use Proxy Configuration for Larger Runs

Enable proxy settings for higher reliability and smoother pagination.

Use Listing URLs

Use URLs that show a product list under https://www.tesco.com/groceries/en-GB/ such as search, category, and tag-style pages.

Category and Tag URLs

When you provide category or tag-style listing URLs, the actor internally derives a search term and fetches products via Tesco search endpoints for better reliability.


Integrations

  • Google Sheets - Share product snapshots with non-technical teams.
  • Airtable - Build searchable product trackers.
  • Webhooks - Trigger custom workflows after each run.
  • Make - Connect with no-code automations.
  • Zapier - Push updates into existing business tools.

Export formats: JSON, CSV, Excel, XML.


Frequently Asked Questions

How many products can I collect?

You can collect as many as available for the query, limited by results_wanted and max_pages.

Which Tesco URL types are supported?

Any Tesco groceries listing URL under /groceries/en-GB/ that returns product lists, including search pages, category pages, and tag-style shop pages.

Can I start from page 2 or beyond?

Yes. Pass a URL that already includes a page parameter. The actor continues pagination from that point.

Why do some records have fewer fields?

Some products do not expose every attribute in all categories. The actor keeps only fields that have real values.

Is the output suitable for analysis?

Yes. The actor writes clean, structured records with consistent key naming and no null-like dataset values.

Can I schedule this actor?

Yes. You can schedule recurring runs in Apify for daily or hourly tracking.


Support

For issues and feature requests, use the Apify Console issue and support channels.

Resources:


This actor is intended for legitimate data collection and analytics use cases. You are responsible for complying with website terms and applicable laws in your jurisdiction.