Maison >développement back-end >Tutoriel Python >Comment puis-je récupérer de manière asynchrone le contenu de plusieurs pages Web à l'aide de la bibliothèque « requests » de Python ?

Comment puis-je récupérer de manière asynchrone le contenu de plusieurs pages Web à l'aide de la bibliothèque « requests » de Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 22:24:13565parcourir

How Can I Asynchronously Retrieve Content from Multiple Web Pages Using Python's `requests` Library?

Requêtes asynchrones avec requêtes Python : récupération de contenu à partir de plusieurs pages

La bibliothèque de requêtes Python permet le traitement asynchrone des requêtes HTTP. Alors que l'exemple fourni dans la documentation présente la récupération des codes de réponse, cet article explore comment récupérer le contenu de chaque page demandée.

Pour ce faire, il est nécessaire de décomposer la tâche en étapes suivantes :

  1. Définir une fonction de tâche : Créez une fonction Python qui définit l'action souhaitée à effectuer sur chaque objet de réponse. Cette fonction contiendra généralement le code permettant d'extraire le contenu souhaité.
  2. Ajouter un hook d'événement : Associez la fonction de tâche à chaque requête en l'ajoutant en tant que hook d'événement. Cela garantit que la fonction est automatiquement appelée avec l'objet de réponse lorsque la requête est terminée.
  3. Initier le traitement asynchrone : Après avoir défini et attaché les hooks d'événement, créez une liste de toutes les requêtes à traiter. de manière asynchrone. Ensuite, appelez la méthode async.map sur cette liste.

Exemple de code :

from requests import async

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

# Task function to extract page content
def extract_content(response):
    return response.content

# List to hold asynchronous actions
async_list = []

# Create requests with event hooks
for u in urls:
    action_item = async.get(u, hooks={'response': extract_content})
    async_list.append(action_item)

# Initiate asynchronous processing
async.map(async_list)

# Print the extracted content
for item in async_list:
    print(item.content)

En suivant ces étapes et en utilisant l'exemple de code fourni, vous pouvez récupérer avec succès le contenu de plusieurs pages de manière asynchrone à l'aide de la bibliothèque de requêtes Python.

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