Eventlet is the shit. You can write a synchronous function for scraping, see if it works, and then add ~5 lines of code from Eventlet to make it asynchronous. No thread locks and syncing, threadsafe queues, or debugging headaches. It's one of those things that really surprises me for not being more popular in the Python community.