Skip to content

Latest commit

 

History

History
87 lines (66 loc) · 2.08 KB

File metadata and controls

87 lines (66 loc) · 2.08 KB

Crexi Scraper — JavaScript / Node.js examples

Call the Crexi Scraper from Node.js with the official apify-client. This talks to the hosted Actor — no scraper code lives in your project.

Install

npm install apify-client

Basic run

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('logiover/crexi-scraper').call({
  propertyTypes: ['Retail'],
  states: ['TX'],
  fetchDetails: true,
  fetchBrokers: true,
  maxResults: 200,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} commercial listings`);
console.log(items[0]);

Extract a broker lead list

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('logiover/crexi-scraper').call({
  propertyTypes: ['Office'],
  states: ['CA', 'NY'],
  fetchBrokers: true,
  maxResults: 500,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();

const leads = items
  .filter((i) => i.brokerNames)
  .map((i) => ({
    broker: i.brokerNames,
    brokerage: i.brokerageName,
    website: i.brokerageWebsite,
    listing: i.name,
    city: i.city,
    state: i.state,
  }));

console.table(leads);

Run from a copied Crexi search URL

const run = await client.actor('logiover/crexi-scraper').call({
  searchUrls: ['https://www.crexi.com/properties/texas/retail-commercial-real-estate'],
  maxResults: 0, // no limit
});

Paginate a large dataset

let offset = 0;
const limit = 1000;
while (true) {
  const { items } = await client
    .dataset(run.defaultDatasetId)
    .listItems({ offset, limit });
  if (items.length === 0) break;
  // process items...
  offset += items.length;
}

See also: CLI · API / cURL · Python.

▶️ Run on Apify