It is hard to say whether Scrapy is better or BeautifulSoup as both of them are complementary to each other and do different things.
Scrapy is a robust, feature-complete, extensible, and maintained web scraping framework. It contains advanced features like rate-limiting, proxy rotation, automated URL discovery, pause/resume crawling functionality, remote control, and multiple output formats.
BeautifulSoup on the other hand is simply an HTML parsing library. You can couple BeautifulSoup with Scrapy to parse HTML responses using BeautifulSoup in Scrapy callbacks. You can follow this guide to learn more about this.
Additionally, if your scraping project is very small and you don't need Scrapy's advanced features, you can pair BeautifulSoup with a simple HTTP library like Requests to get the job done.