Skip to content

Repository files navigation

Adobe Pricing Apify Actor (Python)

Scrapes Adobe Creative Cloud “All Apps” pricing for a list of regions using the Python Apify SDK and Selenium. Runners (local, Apify platform, or n8n) supply a JSON payload and the actor writes one record per region to the default Apify dataset.

Environment setup

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt

By default the actor uses webdriver-manager to download a matching ChromeDriver binary. For offline/local development you can install ChromeDriver yourself (e.g. brew install --cask chromedriver) and pass its path via the chromedriverPath input or a CHROMEDRIVER_PATH environment variable.

Local development workflow

  1. Update apify_storage/key_value_stores/default/INPUT.json with the regions you want to test.

  2. Run the actor:

    # Using the Apify CLI (mirrors the platform)
    apify run
    
    # Or directly
    python src/main.py
  3. Inspect results:

    apify datasets get-items --datasetId default

    The dataset export files also live in apify_storage/datasets/default.

Deploying to Apify

apify login
apify push

Define default inputs in the Apify console using INPUT_SCHEMA.json to guide manual runs and n8n payload validation.

n8n integration outline

  1. Gather region data (from Notion or another source) and build the JSON payload described below.
  2. Trigger this actor with Apify → Run Actor (or an HTTP node calling the Apify API), passing the JSON as INPUT.
  3. Await run completion and fetch results via Apify → Get Dataset Items.
  4. Map each dataset item into Notion using the Notion nodes of your workflow.

Expected input (INPUT_SCHEMA.json)

{
  "regions": [
    {
      "region_code": "us",
      "region_name": "United States",
      "href": "https://www.adobe.com/creativecloud/plans.html"
    }
  ],
  "delayBetweenItemsSecs": 0,
  "requestTimeoutSecs": 60,
  "headless": true,
  "chromedriverPath": "/usr/local/bin/chromedriver",
  "chromeBinaryPath": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
}
  • href is optional; the actor falls back to https://www.adobe.com/{region_code}/creativecloud/plans.html.
  • delayBetweenItemsSecs introduces a pause after each region to reduce the risk of throttling.
  • requestTimeoutSecs controls Selenium’s waits for price elements.
  • headless lets you flip a headed Chrome window on for debugging (false).
  • chromedriverPath (optional) points to a pre-installed ChromeDriver binary; when omitted the actor falls back to webdriver-manager (needs network access).
  • chromeBinaryPath (optional) sets the Chrome executable explicitly if it is not in the default location.

Each output record contains product, region, region_name, currency, amount, period, timestamp, success, and optional error when scraping fails—making downstream Notion updates straightforward.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages