Flexible and extensible Python web scraping framework