BeautifulSoup - это просто html-парсер.
Requests - это просто библиотека для осуществления HTTP-запросов.
Scrapy - это фреймворк для скрэпинга/краулинга, который из коробки умеет в асинхронщину, перебор страниц, представление данных и много чего еще, при чем делает это быстро и эффективно.
Так, что есть что - разобрались.
Если нужно спарсить что-то один раз в небольшом объёме - requests + lxml (да, он лучше, чем bs как минимум тем, что умеет в xpath) более чем.
Большой объём? aiohttp + lxml (но тут уже хоть немного нужно уметь в python).
Нужно построить краулер (или много краулеров), который будет работать ежедневно и пробегать кучу страниц? Косплеить велосипедного инженера - это очень хорошо, но scrapy лучше.