Common patterns
Asynchronous requests
Using grequests
import grequests
urls = [
'http://www.heroku.com',
'http://python-tablib.org',
'http://httpbin.org',
'http://python-requests.org',
'http://kennethreitz.com'
]
rs = (grequests.get(u) for u in urls)
grequests.map(rs)
Using requests-futures
from requests_futures.sessions import FuturesSession
session = FuturesSession()
future_one = session.get('http://httpbin.org/get')
future_two = session.get('http://httpbin.org/get?foo=bar')
response_one = future_one.result()
Using aiohttp
import asyncio
import aiohttp
urls = [
'http://www.heroku.com',
'http://python-tablib.org',
'http://httpbin.org',
'http://python-requests.org',
'http://kennethreitz.com'
]
requests = asyncio.gather(
*[aiohttp.get(u) for u in urls]
)
loop = asyncio.get_event_loop()
responses = loop.run_until_complete(requests)