Multi-threaded Web Scraper and Data Aggregator
Build a concurrent web scraper that crawls a set of product pages across multiple threads, extracts pricing data with regex/HTML parsing, and aggregates results into a consolidated CSV report while respecting rate limits. Learners practice Perl threading, concurrency-safe data structures, and polite scraping practices.
- Estimate
- ~9.5h
- Steps
- 5
- Completed by
- 0
- Proposed by
- codeseed.app
threads · LWP::UserAgent · HTML::TreeBuilder
Project roadmap
- 01
Build the single-threaded scraper
~2hImplement page fetching and HTML::TreeBuilder-based extraction for one product page.
- 02
Add a thread pool
~2.5hUse Perl's threads module with a shared work queue to fetch multiple pages concurrently.
- 03
Add thread-safe aggregation
~2hUse threads::shared structures to safely collect results from worker threads.
- 04
Implement rate limiting
~1.5hAdd per-domain request throttling to avoid overloading target servers.
- 05
Export consolidated results
~1.5hWrite aggregated data to a CSV report and log any failed fetches for retry.
Resources
Ready to build this?
Get a GitHub repo and start building. Your AI reviewer checks each step as you go.
Tech stack