Specification Sniper — Build FastAPI + Playwright API to Extract Product Specs from URLs
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
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
Related categories:
JavaScript
Python
Web Scraping
Software Architecture
JSON
Data Extraction
Automation
FastAPI
REST API