generalize scraper