Skip to content

Latest commit

 

History

History
91 lines (68 loc) · 2.32 KB

File metadata and controls

91 lines (68 loc) · 2.32 KB

Crexi Scraper — Python examples

Call the Crexi Scraper from Python with the official apify-client. This calls the hosted Actor — no scraper code in your project.

Install

pip install apify-client

Basic run

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("logiover/crexi-scraper").call(run_input={
    "propertyTypes": ["Retail"],
    "states": ["TX"],
    "fetchDetails": True,
    "fetchBrokers": True,
    "maxResults": 200,
})

items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Got {len(items)} commercial listings")
print(items[0])

Build a broker lead list

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("logiover/crexi-scraper").call(run_input={
    "propertyTypes": ["Office"],
    "states": ["CA", "NY"],
    "fetchBrokers": True,
    "maxResults": 500,
})

leads = []
for i in client.dataset(run["defaultDatasetId"]).iterate_items():
    if i.get("brokerNames"):
        leads.append({
            "broker": i.get("brokerNames"),
            "brokerage": i.get("brokerageName"),
            "website": i.get("brokerageWebsite"),
            "listing": i.get("name"),
            "city": i.get("city"),
            "state": i.get("state"),
        })

print(f"{len(leads)} broker leads")

Export to a pandas DataFrame / CSV

import pandas as pd
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("logiover/crexi-scraper").call(run_input={
    "propertyTypes": ["Multifamily"],
    "keyword": "Austin",
    "maxResults": 1000,
})

rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
df = pd.DataFrame(rows)
df.to_csv("crexi.csv", index=False)
print(df[["name", "askingPrice", "capRate", "city", "state"]].head())

Run from a copied Crexi search URL

run = client.actor("logiover/crexi-scraper").call(run_input={
    "searchUrls": ["https://www.crexi.com/properties/california/office-commercial-real-estate"],
    "maxResults": 0,  # no limit
})

See also: CLI · API / cURL · JavaScript.

▶️ Run on Apify