I built domharvest-playwright to solve a problem I kept hitting as a freelance scraper:
clients' scrapers breaking when sites redesign.
Instead of brittle CSS selectors, you describe what you want semantically:
extract('price').near('Add to Cart')
extract('title').inside('product card')
The library uses fuzzy matching and proximity scoring to find elements even when
class names or structure change. Built on Playwright with retry logic, rate limiting,
and batch processing.
MIT licensed. Would love feedback from the community.
DomHarvest•1h ago
Instead of brittle CSS selectors, you describe what you want semantically:
The library uses fuzzy matching and proximity scoring to find elements even when class names or structure change. Built on Playwright with retry logic, rate limiting, and batch processing.MIT licensed. Would love feedback from the community.