Zoopla.co.uk Scraper
3 days trial then $30.00/month - No credit card required now
This Actor may be unreliable while under maintenance. Would you like to try a similar Actor instead?
See alternative ActorsZoopla.co.uk Scraper
3 days trial then $30.00/month - No credit card required now
Scrape Zoopla.co.uk to crawl millions of sale/rent real estate properties from United Kingdom. Our real estate scraper also lets you monitor specific listing for new updates/listing. You can provide multiple search result listings to scrape/monitor.
🏡 What is Zoopla Real Estate Properties Scraper?
This Zoopla properties Scraper will enable you scrape any sale/rent listing from collection from zoopla.co.uk/.
You can simply take your listing url from browser and enter it into this actor. This actor will crawl through all pages of particular listing and generate dataset for you.
Listing url is something you get when you perform the search on zoopla site. Example listing urls :
- https://zoopla.co.uk/to-rent/property/nw2/?results_sort=newest_listings&search_source=refine&view_type=list
- https://zoopla.co.uk/for-sale/property/nw2/?results_sort=newest_listings
- https://www.zoopla.co.uk/for-sale/property/london-fields/?search_source=home
🚪 What can this Zoopla Scraper do?
📈 Extract Zoopla market data listings on Zoopla
👀 This actor is not just scraper but also has monitoring capability. You can turn on monitoring mode and it will give you only newly added properties compared to your previous scrapes.
📩 This actor also helps yu to identify which properties are not listed anymore. Please refer to Identifying delisted properties
⬇️ Download Zoopla real estate data in Excel, CSV, JSON, and other formats
📚 How do I start scraping with this scraper?
- Register for your free Apify account here
- You don't need to provide your credit card details for free acount. Just click on "Get Started" button on above link and complete the registration only.
- Free account comes with reasonable credits to try out this actor. This actor also comes with free trial of 3 days without any commitment/upfront charge.
- Run this actor and verify the scraped data. Apify has huge integration possibilities. You can download the data or push the data into any 3rd party platform directly.
🌳 What Zoopla data can I extract using this tool?
📝 | 📝 |
---|---|
Listing Title | Full Address |
Listing URL | Category |
Postal Code | Livingrooms |
Bathrooms | Bedrooms |
Agent Name | Agent Phone |
Listing Type | Property Type |
Latitude | Longitude |
Floor | Points Of Interest |
Text Description | Formatted HTML Description |
Amenities | Images |
Price | Size |
Incode | Outcode |
Price History | Rent Price |
⬇️ Input
For simple usecase, you just need to provide browser url of zoopla search result page & that's all. You can leave other fields as they are to be sensible defaults.
Input example
1{ 2 "listUrls": [ 3 { 4 "url": "https://zoopla.co.uk/to-rent/property/nw2/?results_sort=newest_listings&search_source=refine&view_type=list" 5 } 6 ], 7 "fullScrape": true, 8 "monitoringMode": false, 9 "fastMode": true, 10 "enableDelistingTracker" : false 11}
Understading monitoring mode :
-
fullScrape
: This option is by default turned on. When enabled it always force actor to scrape complete listing from all pagination pages regardless of monitoring is enabled or not. -
monitoringMode
: This open when turned on will only scrape newly added property listings compared to previously scraped properties by this actor. It's important to turn off fullScrape setting if you are using this mode. If you keep fullScrape on, it will re-scrape complete listing again. -
fastMode
: If unchecked, it will add price history, images and points of inetrests to each property. -
enableDelistingTracker
: This option when turned on will start tracking date against each property under Apify Key Value store. This KV store can be queried later to find out which properties are delisted.
⬆️ Output
The scraped data is stored in the dataset of each run. The data can be viewed or downloaded in many popular formats, such as JSON, CSV, Excel, XML, RSS, and HTML.
Output example
The result for scraping a single property like this:
1{ 2 "title": "4 bed flat for sale", 3 "address": "Blenheim House, One Tower Bridge, London SE1", 4 "bedrooms": "4", 5 "bathrooms": "5", 6 "livingroom": "1", 7 "sizeSqFeet": "2470", 8 "price": "£6,900,000", 9 "description": "This unique apartment of 2,470 sq ft (229.5 sqm) offers the ultimate in luxurious living, and is available for chain free sale through Prime London. The property is set in prime position in the desirable One Tower Bridge development, and being located on the front of Blenheim House enjoys stunning views of the River Thames, Tower Bridge, City skyline and Tower of London from both the entertaining space and principle suite. The property is also sold with a secure parking space.Finished to an incredibly high standard throughout, this contemporary property comprises a large reception room with floor to ceiling windows that lead onto a balcony that stretches the length of the reception, offering uninterrupted views from both this and the stylish kitchen. The property further comprises master bedroom (with en suite facilities and views of the river) and a further three double bedrooms with en suite facilities.Apartments in Blenheim House benefit from state of the art integrated systems using the very latest in smart home technology, underfloor heating, comfort cooling to principal rooms, ergonomically planned designer kitchens and individual finishes.The development itself offers a residents only health club including pool, spa and gym facility, private courtyard garden, business lounge and virtual golf.", 10 "coordinates": { 11 "latitude": "51.504199", 12 "longitude": "-0.083677" 13 }, 14 "priceMin": "6500000", 15 "priceMax": "7000000", 16 "incode": "2SF", 17 "outcode": "SE1", 18 "floor": "2470", 19 "category": "residential", 20 "type": "for-sale", 21 "postalCode": "SE1 2SF", 22 "features": [ 23 "A premium river facing four bedroom apartment", 24 "2,470 sq ft (229.5 sqm)", 25 "Secure Parking space", 26 "Views over Tower Bridge", 27 "Lounge and virtual golf", 28 "Residents' leisure facilities and 24 hour concierge" 29 ], 30 "countyArea": "London", 31 "region": "London", 32 "propertyType": "flat", 33 "listingsCategory": "residential", 34 "agent": "Prime London (Riverside)", 35 "agentPhone": "020 7768 6617", 36 "images": [ 37 "https://lid.zoocdn.com/u/2400/1800/18d1a9db7827dbcf88ce7a0ccc9cbbc4b6dabdb5.jpg", 38 "https://lid.zoocdn.com/u/2400/1800/afdd00de998138425cb1c2490bcbec6c83487657.jpg", 39 "https://lid.zoocdn.com/u/2400/1800/a08dfb54e23256ae229088c7b4a5064ecc92cc6e.jpg", 40 "https://lid.zoocdn.com/u/2400/1800/d5e0de3f8e6726588c1bbe03c23384d267406052.jpg", 41 "https://lid.zoocdn.com/u/2400/1800/33c1af0f5cef1790b0c4f66d250a1e75a05875d7.jpg", 42 "https://lid.zoocdn.com/u/2400/1800/cfc0b6939bea7853d00d452e9404ef6282b71a82.jpg", 43 "https://lid.zoocdn.com/u/2400/1800/edf00ae5cf39c001928734be8eb3ce90867e1104.jpg", 44 "https://lid.zoocdn.com/u/2400/1800/e99350ebfebfbf5c532e575145b8d90b8c010a80.jpg", 45 "https://lid.zoocdn.com/u/2400/1800/9014839f65c812245edcdf9babb46feb0e758949.jpg", 46 "https://lid.zoocdn.com/u/2400/1800/5d5c277765008f8b32e81e9749a6be591f5290eb.jpg", 47 "https://lid.zoocdn.com/u/2400/1800/ca0a57200bf03393aafa5957b9dcd56d020878cd.jpg", 48 "https://lid.zoocdn.com/u/2400/1800/ffe5382f3a2f87e04b1c52c8e66508c84d3973e9.jpg", 49 "https://lid.zoocdn.com/u/2400/1800/eba7d7c8103320b1f690df79c627a384a5c57412.jpg", 50 "https://lid.zoocdn.com/u/2400/1800/2468bb594228bedde68a370b345015fd9a1287b5.jpg", 51 "https://lid.zoocdn.com/u/2400/1800/79e1b3c549e9699f3239559c32e7342cb4835744.jpg", 52 "https://lid.zoocdn.com/u/2400/1800/6f134de448c23f90c6563f2d1af57e16bd299ea3.jpg", 53 "https://lid.zoocdn.com/u/2400/1800/0a92751bb3766c08f601df7628b9bee68a8e8cde.jpg", 54 "https://lid.zoocdn.com/u/2400/1800/8769712c9a15cbfdf52a86438e84e5c68334d397.jpg", 55 "https://lid.zoocdn.com/u/2400/1800/0987fc1cdf11144e297b2d26d0b9bccad139d5ca.jpg", 56 "https://lid.zoocdn.com/u/2400/1800/6aed8fd73013988474ec3c4382688ce4354b9413.jpg", 57 "https://lid.zoocdn.com/u/2400/1800/11bba2e9a73576f87e67a885d87be1d9cfa102f0.jpg", 58 "https://lid.zoocdn.com/u/2400/1800/fd63d92e08ddcb54442d26782362ad87ed9d6703.jpg", 59 "https://lid.zoocdn.com/u/2400/1800/096f3fa22b9a419abdde777ace25ab5020690c5d.jpg", 60 "https://lid.zoocdn.com/u/2400/1800/73237792d6736338b68c1d46c1c10ab100a8ff25.jpg", 61 "https://lid.zoocdn.com/u/2400/1800/b2714bdae362fa0075a03d5db59866193aa7ae35.jpg", 62 "https://lid.zoocdn.com/u/2400/1800/82dadc5052c9b3f31248e2538cc44175b31a8195.jpg", 63 "https://lid.zoocdn.com/u/2400/1800/78408d5e897e89c08b147d85c731d2c89b7e124f.jpg" 64 ], 65 "priceHistory": [ 66 { 67 "action": "Sold", 68 "date": "May 2017", 69 "price": "£6,000,000" 70 } 71 ], 72 "pointsOfInterest": [ 73 { 74 "title": "London Bridge", 75 "distance": "0.1 miles" 76 }, 77 { 78 "title": "London Bridge City Pier", 79 "distance": "0.2 miles" 80 }, 81 { 82 "title": "Tower Millennium Pier", 83 "distance": "0.3 miles" 84 }, 85 { 86 "title": "St Katharine's Pier", 87 "distance": "0.5 miles" 88 }, 89 { 90 "title": "Snowsfields Primary School", 91 "distance": "0.2 miles" 92 }, 93 { 94 "title": "Beormund Primary School", 95 "distance": "0.3 miles" 96 }, 97 { 98 "title": "Tower Bridge Primary School", 99 "distance": "0.3 miles" 100 }, 101 { 102 "title": "Saint Joseph's Catholic Primary School, the Borough", 103 "distance": "0.4 miles" 104 } 105 ], 106 "id": "66233218", 107 "url": "https://www.zoopla.co.uk/for-sale/details/66233218/?search_identifier=969b7386fdcc5abdb724a45659b6e132aeb73fad3cd811c37bba93110afe3c37" 108}
❓Limitations
Since Zoopla allows only 1000 properties per listing/search result, you might want to break down your listing urls into smaller area if it has more than 1K results. Good News is that even if multiple list urls contains overlapping results, they will get deduplicated within same run data.
🔎 Identifying delisted properties
This actor provides you monitoring mode configuration using which you can get only incremental updates about newly added properties. In case, you also want to identify which properties are delisted from platform, you can use any of the following techniques with the help of this actor.
-
Running Always in full scraper mode : Run this actor always in full scrape mode and cross check the new incoming batch of data with your existing database. If any property that exists in yoru database but not in newly scraped data batch, that means it's not listed anymore
-
Use Key Value Store generated by scraper : If your are monitoring very large batch of data and you don't want to scrape everything all the time, this method involves bit of technicality but achieves the goal efectively. Apify has storage feature called Key-value store. When you run this scrape, this scraper stores every single property in key value store along with timestamp in
zoopla-properties
store. Inside this store, key is property id itself and value is timestamp like this{ lastSeen : '2023-11-02T05:59:25.763Z'}
Whenever you run this scraper, it will update the timestamp against particular id if it finds property on the platform. e.g. if we have 2 proprties with id
prop1
andprop2
and we scraped them both on November 1, key value storage would look like this :1prop1 -> { lastSeen : '2023-11-01T05:59:25.763Z'} 2prop2 -> { lastSeen : '2023-11-01T05:59:25.763Z'}
Now if you run this scraper again on December 1 and prop1 is not on the platform anymore but prop2 is still there, key value storage would change like this :
1prop1 -> { lastSeen : '2023-11-01T05:59:25.763Z'} 2prop2 -> { lastSeen : '2023-12-01T05:59:25.763Z'}
That means if any property has
lastSeen
less than latest batch you loaded, that property is delisted now. You can directly iterate through whole Key value storage using Apify key value storage API to identify this. Please refer to this API documentation to do the same. Please remember store name generated by this scrape will bezoopla-properties
.Alternatively, you can iterate through your existing database active properties and use this API to identify listing status.
For this approach to work, it's important that you enable this feature via
enableDelistingTracker
(Enable Delisting tracker) input.
🙋♀️ For custom solutions
In case you need some custom solution, you can contact me : dhrumil@techvasu.com
Or learn more about me on github : https://github.com/dhrumil4u360
Actor Metrics
5 monthly users
-
3 stars
>99% runs succeeded
0.2 hours response time
Created in Dec 2022
Modified 10 minutes ago