What is the best way to download  number of pages from a list of urls?
Scrapy is still an option.

Speed/performance/efficiency

Scrapy is written with Twisted, a popular event-driven networking
  framework for Python. Thus, it’s implemented using a non-blocking (aka
  asynchronous) code for concurrency.

Database pipelining
You mentioned that you want your data to be pipelined into the database - as you may know Scrapy has Item Pipelines feature:

After an item has been scraped by a spider, it is sent to the Item
  Pipeline which process it through several components that are executed
  sequentially.

So, each page can be written to the database immediately after it has been downloaded.
Code organization
Scrapy offers you a nice and clear project structure, there you have settings, spiders, items, pipelines etc separated logically. Even that makes your code clearer and easier to support and understand.
Time to code
Scrapy does a lot of work for you behind the scenes. This makes you focus on the actual code and logic itself and not to think about the "metal" part: creating processes, threads etc.

But, at the same time, Scrapy might be an overhead. Remember that Scrapy was designed (and great at) to crawl, scrape the data from the web page. If you want just to download a bunch of pages without looking into them - then yes, grequests is a good alternative.
I have a >100,000 urls (different domains) in a list that I want to download and save in a database for further processing and tinkering.
Would it be wise to use scrapy instead of python's multiprocessing / multithreading? If yes, how do I write a standalone script to do the same?
Also, feel free to suggest other awesome approaches that come to your mind.