French Real Estate avatar

French Real Estate

Try for free

3 days trial then $25.00/month - No credit card required now

View all Actors
French Real Estate

French Real Estate

haythembenjbara/french-real-estate
Try for free

3 days trial then $25.00/month - No credit card required now

The French Real Estate Listing Crawler extracts property data from the tree major platform Seloger, Leboncoin, and Bienici. Get structured information on prices, locations, and features in real-time, ideal for property research, analysis, and investment decisions.

🏡 Real Estate Listing Crawler for French Websites

Real Estate Listing Crawler is an Apify Actor that automates the process of extracting real estate data from three popular French real estate platforms: seloger, leboncoin, and bienici. Whether you're building a property analysis tool, performing market research, or simply need to gather real estate listings, this actor provides you with clean and unified data.

🎯 Why Use This Actor?

Manually gathering real estate listings from multiple sources can be time-consuming and inconsistent. This actor solves this problem by automating the process, providing structured and normalized data in a single format. It helps you get key information like price, location, publisher details, and property features across multiple sites with ease.

✨ Main Features

  • Multi-site Support: Crawl listings from seloger.com, leboncoin.fr, and bienici.com in one go.
  • Data Normalization: Extracted data is standardized into a unified schema, so you don't have to worry about differences between platforms.
  • Highly Configurable: Control the number of results you want, and select specific URLs to target.
  • Rich Data Output: Extracts detailed property information, including price, location, rooms, amenities, energy efficiency, and more.

🚀 Get Started

  1. Sign up or log in to your Apify account.
  2. Configure the actor input (URLs, result limit).
  3. Run the actor and let it fetch the real estate data for you.

🧰 How to Use

Inputs

The actor requires three input parameters:

  1. Target URLs (Required):

    • A key-value list where the key is one of seloger, leboncoin, or bienici and the value is a list of URLs to crawl.
    • Example:
      1{
      2  "seloger": "https://www.seloger.com/listing-url",
      3  "boncoin": "https://www.leboncoin.fr/listing-url",
      4  "bienici": "https://www.bienici.com/listing-url"
      5}
  2. crawlerLimit (Optional):

    • Define how many listings you want to extract (e.g., 100, 500, 1000). The default is 100.
    • Example:
      500

Example Input Configuration

1{
2  "crawlerLimit": 1000,
3    "targetUrls": [
4        {
5            "key": "bienici",
6            "value": "https://www.bienici.com/recherche/achat/france/maisonvilla,appartement,parking,terrain,loft,commerce,batiment,chateau,local,bureau,hotel,autres?mode=liste&tri=publication-desc"
7        },
8        {
9            "key": "boncoin",
10            "value": "https://www.leboncoin.fr/recherche?category=9&real_estate_type=1,2,3,4,5&immo_sell_type=old,new,viager&owner_type=pro"
11        },
12        {
13            "key": "seloger",
14            "value": "https://www.seloger.com/list.htm?projects=2,5&types=2,4,1,13,9,3,14,12,11,10&natures=1,2,4&sort=d_dt_crea&mandatorycommodities=0&privateseller=0&enterprise=0&houseboat=1&qsVersion=1.0&m=search_refine-redirection-search_results"
15        }
16    ],
17}

🗂️ Data Schema

All data collected from the websites is formatted into the following unified schema:

1export type realEstateAd = {
2  origin: CRAWLER_ORIGIN;
3  adId: string;
4  reference: string;
5  creationDate: Date;
6  lastCheckDate: Date;
7  title: string;
8  type: string;
9  category: string;
10  publisher: {
11    name: string;
12    storeUrl: string;
13    phoneNumber: string;
14  };
15  description: string;
16  url: string;
17  pictureUrl: string;
18  pictureUrls: string[];
19  location: {
20    city: string;
21    postalCode: string;
22    departmentCode: string;
23    regionCode: string;
24    coordinates:{
25      lon: number;
26      lat: number;
27    }
28  };
29  price: number | null;
30  rooms: number | null;
31  bedrooms: number | null;
32  surface: number | null;
33  landSurface: number | null;
34  floor: number | null;
35  buildingFloors: number | null;
36  energyValue: number | null;
37  energyGrade: string | null;
38  gasValue: number | null;
39  gasGrade: string | null;
40  options: {
41    hasTerrace?: boolean;
42    hasCellar?: boolean;
43    hasBalcony?: boolean;
44    hasGarden?: boolean;
45    workToDo?: boolean;
46    hasAirConditioning?: boolean;
47    hasFirePlace?: boolean;
48    hasElevator?: boolean;
49    hasAlarm?: boolean;
50    hasDoorCode?: boolean;
51    hasCaretaker?: boolean;
52    hasIntercom?: boolean;
53    hasPool?: boolean;
54    hasSeparateToilet?: boolean;
55    isDisabledPeopleFriendly?: boolean;
56    hasUnobstructedView?: boolean;
57    hasGarage?: boolean;
58    exposition?: string | null;
59    parkingPlacesQuantity?: number | null;
60    isRecent?: boolean | null;
61  };
62};

The schema includes:

  • Basic Property Information: Title, description, price, number of rooms, etc.
  • Location Data: City, postal code, region, and precise coordinates.
  • Publisher Details: Name, phone number, and URL of the real estate agency.
  • Property Features: Options such as terrace, garden, parking, air conditioning, and more.

📝 Example Output

The actor will output real estate data in a structured JSON format, based on the schema described above. Here’s an example of what the output might look like:

1{
2  "origin": "seloger",
3  "adId": "123456",
4  "reference": "ABC123",
5  "creationDate": "2024-01-01T12:00:00Z",
6  "lastCheckDate": "2024-01-02T12:00:00Z",
7  "title": "Charming Apartment in Paris",
8  "type": "Apartment",
9  "category": "For Sale",
10  "publisher": {
11    "name": "Real Estate Agency",
12    "storeUrl": "https://example.com",
13    "phoneNumber": "+33 1 2345 6789"
14  },
15  "description": "A beautiful apartment located in the heart of Paris.",
16  "url": "https://www.seloger.com/listing-url",
17  "pictureUrl": "https://example.com/image.jpg",
18  "pictureUrls": ["https://example.com/image1.jpg", "https://example.com/image2.jpg"],
19  "location": {
20    "city": "Paris",
21    "postalCode": "75001",
22    "departmentCode": "75",
23    "regionCode": "IDF",
24    "coordinates": {
25      "lon": 2.3522,
26      "lat": 48.8566
27    }
28  },
29  "price": 500000,
30  "rooms": 3,
31  "bedrooms": 2,
32  "surface": 75,
33  "landSurface": null,
34  "floor": 2,
35  "buildingFloors": 5,
36  "energyValue": 150,
37  "energyGrade": "C",
38  "gasValue": 100,
39  "gasGrade": "D",
40  "options": {
41    "hasBalcony": true,
42    "hasElevator": true,
43    "hasGarage": false,
44    "hasAirConditioning": false
45  }
46}
Developer
Maintained by Community
Actor metrics
  • 4 monthly users
  • 2 stars
  • 94.7% runs succeeded
  • Created in Oct 2024
  • Modified 15 days ago