Declarative, resilient, and typed web scraping. Define what you want — topscrape figures out how to get it, even when the site changes.