Maison >développement back-end >Tutoriel Python >Comment récupérer le contenu d'une page à partir de requêtes asynchrones dans la bibliothèque de requêtes de Python ?

Comment récupérer le contenu d'une page à partir de requêtes asynchrones dans la bibliothèque de requêtes de Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-04 14:34:10688parcourir

How to Retrieve Page Content from Asynchronous Requests in Python's Requests Library?

Gestion des requêtes asynchrones avec la bibliothèque de requêtes Python

Défi :

Alors que la documentation de la bibliothèque de requêtes fournit un exemple d'exécution asynchrone demandes, il manque de conseils sur la récupération du contenu de la page. Le code suivant ne parvient pas à accéder au contenu :

out = async.map(rs)
print out[0].content

Solution :

Pour effectuer plusieurs tâches asynchrones à l'aide de async.map, suivez ces étapes :

  1. Définir une fonction de tâche : Créer une fonction pour gérer chaque tâche ou réponse objet.
  2. Ajouter un hook d'événement : Ajoutez cette fonction en tant que hook d'événement dans la requête pour spécifier quoi faire avec la réponse.
  3. Mappez les requêtes : Appelez async.map avec une liste de toutes les requêtes ou actions que vous souhaitez exécuter de manière asynchrone.

Exemple :

Considérez une liste d'URL et une tâche simple d'impression de l'URL de réponse :

import async

urls = [
    'http://python-requests.org',
    'http://httpbin.org',
    'http://python-guide.org',
    'http://kennethreitz.com'
]

def do_something(response):
    print(response.url)

async_list = []

for u in urls:
    action_item = async.get(u, hooks={'response': do_something})
    async_list.append(action_item)

async.map(async_list)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn