Playwright-Based Price Tracker

Job ID: 40514495

Budget: $30 – $250 AUD

I already monitor a handful of well-known online retailers with Playwright scripts, but a recent round of site changes and Cloudflare tweaks has broken several of them. I need an investigator more than a scraper: someone who can step through the JavaScript, map new DOM paths, trace hidden XHR / fetch calls, and patch or rewrite the logic so pricing information is captured accurately again.

What you will tackle
• Analyse each failing script, identify why the price node or API endpoint now returns nothing, and document the root cause.
• Reverse-engineer any new front-end obfuscation, lazy-loaded content, or anti-bot measures that stand in the way.
• Where Cloudflare is involved, adjust Playwright settings or introduce lightweight work-arounds (rotate fingerprints, tweak headers, etc.) without resorting to paid third-party captcha solvers.
• Deliver a clean, well-commented Python tool that I can run on a schedule (cron) against an editable JSON watchlist containing product URLs along with any per-item metadata I define.

Scope clarifications
– Primary target: pricing information only; I don’t need full product specs or stock data.
– once a price threshold (specials) is met on products on the watchlist - an automated email is sent.
– Retailer scope: a fixed list that I will share once we start.
– No authentication is required on any of these sites.

Acceptance criteria
1. Running python main.py --watchlist products.json outputs a lightweight JSON or CSV file with url, price, timestamp for every item.
2. Script exits with clear status codes and logs failures to a rotating log file.
3. All dependencies are captured in requirements.txt and the code runs under Python 3.11 on Ubuntu.
4. Internal functions are unit-testable; include a small pytest suite for the core parsing logic.

Tools already in play: Playwright (Chromium), asyncio, and rich logging. If you prefer additional libraries for network interception or fingerprinting, just justify the choice in your readme.

This is a technical debugging mission first and foremost, so please highlight any past work where you dissected modern JS storefronts or defeated Cloudflare light-touch checks.