Nota
La réponse ci-dessous est no applicable aux demandes v0.13.0+. La fonctionnalité asynchrone a été déplacée vers grequests après que cette question ait été écrite. Cependant, vous pourriez simplement remplacer requests
con grequests
ci-dessous et cela devrait fonctionner.
J'ai laissé cette réponse telle quelle pour refléter la question originale qui concernait l'utilisation des requêtes < v0.13.0.
Pour effectuer plusieurs tâches avec async.map
de manière asynchrone vous devez le faire :
- Définissez une fonction pour ce que vous voulez faire avec chaque objet (votre tâche).
- Ajoutez cette fonction comme un crochet d'événement dans votre requête
- Appelez
async.map
sur une liste de toutes les demandes / actions
Exemple :
from requests import async
# If using requests > v0.13.0, use
# from grequests import async
urls = [
'http://python-requests.org',
'http://httpbin.org',
'http://python-guide.org',
'http://kennethreitz.com'
]
# A simple task to do to each response object
def do_something(response):
print response.url
# A list to hold our things to do via async
async_list = []
for u in urls:
# The "hooks = {..." part is where you define what you want to do
#
# Note the lack of parentheses following do_something, this is
# because the response will be used as the first argument automatically
action_item = async.get(u, hooks = {'response' : do_something})
# Add the task to our list of things to do via async
async_list.append(action_item)
# Do our list of things to do via async
async.map(async_list)
0 votes
Peut-être que les réponses que vous obtenez ont un corps vide ?
0 votes
Ça marche pour moi. Veuillez poster l'erreur complète que vous obtenez.
0 votes
Il n'y a pas d'erreur. il s'exécute simplement pour toujours par les urls de test fournies.
0 votes
Il apparaît évidemment lorsque j'utilise des urls sur https. http fonctionne très bien.
0 votes
On dirait que
requests-threads
existe maintenant.11 votes
La plupart des réponses sont dépassées. En 2021, le vainqueur actuel de l'effet de mode est : docs.aiohttp.org/fr/stable