Timeout
Pour éviter que le serveur ne réponde à temps, la plupart des requêtes envoyées à des serveurs externes doivent porter le paramètre timeout. Par défaut, les requêtes n'expireront pas automatiquement à moins qu'une valeur de délai d'attente ne soit explicitement spécifiée. Sans délai d'attente, votre code peut se bloquer pendant plusieurs minutes ou plus.
Le délai d'attente de connexion fait référence au nombre de secondes que Request attendra lorsque votre client se connectera au port de la machine distante (correspondant à connect()). Une bonne pratique consiste à définir le délai d'expiration de la connexion sur une valeur légèrement supérieure à un multiple de 3, puisque la taille par défaut de la fenêtre de retransmission des paquets TCP est de 3.
Dans le domaine du proxy crawler, on rencontre souvent le problème de timeout des requêtes. Le code y est bloqué, aucune erreur n'est signalée et il n'y a pas de réponse aux requêtes.
Recommandations associées : "Tutoriel vidéo Python"
Le traitement habituel consiste à ajouter un délai d'attente à l'instruction requêtes.get() pour limiter le temps de requête.
req = requests.get(url, headers=headers, proxies=proxies, timeout=5)
Si vous constatez que le problème de non-réponse à long terme existe toujours après avoir défini timeout=5, vous pouvez affiner les paramètres dans timeout
Après avoir effectué les modifications suivantes, le problème disparaîtra
req = requests.get(url, headers=headers, proxies=proxies, timeout=(3,7))
le délai d'expiration passe dans un tuple (3,7). Le premier chiffre est le délai d'expiration de la connexion et le deuxième chiffre est le délai d'attente de lecture
Si rencontré. lors de l'utilisation du message d'erreur timeout ValueError (similaire à : ValueError : Timeout value connect was Timeout(connect=2.0, read=2.0, total=None), mais il doit s'agir d'un int ou d'un float. ), c'est la version python-requests Un bug dans la version 2.4.3-4 nous oblige à mettre à jour les requêtes
pip install -U requests
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!