Пробовал всякие scrapy и прочие "фреймворки для парсинга", но приходилось с ними много бороться. В итоге пришел к написанию собственной утилиты. Построено поверх requests + lxml: первым делаешь запросы, вторым — с помощью селектора XPath забираешь данные. Ничего лишнего.