Specification Sniper — Build FastAPI + Playwright API to Extract Product Specs from URLs

Job ID: 39643646

Budget: ₹9,000 – ₹15,000 INR

I need a backend built using Python + FastAPI + Playwright that accepts up to 20 product page URLs, opens each link, clicks a “View More” button to expand specifications, and extracts the Product Title, Product ID, and all available key–value spec parameters. The output must be returned as structured JSON and downloadable CSV.

This is for a SaaS tool where users paste links into a web interface and download product specification sheets. The backend must be async, fast, scalable, and easy to deploy.

INPUT
POST endpoint: /extract

Accepts JSON payload:

json
Copy
Edit
{
"links": [
"https://example.com/product1",
"https://example.com/product2"
]
}
SCRAPER LOGIC
For each link:

Open in headless browser (Playwright async)

Wait for full DOM load

Click “View More” or similar element to reveal specs

Extract:

Product Title

Product ID

All key–value specs shown in the expanded area

REQUIREMENTS
Async scraping (5 concurrent URLs)

Configurable delay between links (2–3 sec)

Retry Twice if a link fails, then skip + log

Output:

JSON (returned in response)

CSV (saved in /output/ folder with timestamped filename)

logs.txt for skipped/failed links

TECH STACK
Python 3.10+

FastAPI

Playwright (async)

Pandas (for CSV generation)

Local storage (output folder)

Hosting-ready (Render / Railway)

DELIVERABLES
main.py (FastAPI API)

scraper.py (async scraping logic)

utils.py (output formatting)

requirements.txt

README.md (local + Render deployment steps)

Sample test run: 2–3 real links → JSON + CSV + log

PERFORMANCE
Should handle 20 links per run under 45–60 seconds

All output must be formatted, UTF-8 safe, ready for download


Timeline: 5–7 days max

NOTES
This is backend only

Frontend will be built separately using Framer and connected via API

Developer must deliver modular, well-documented code