Question

Je suis en train de programmer un simple web-crawler en utilisant les Demandes de module, et je voudrais savoir comment désactiver le son par défaut - keep-alive feauture.

J'ai essayé d'utiliser:

s = requests.session()
s.config['keep_alive'] = False

Cependant, je reçois un message d'erreur indiquant que l'objet de la session n'a pas d'attribut "config", je pense qu'il a été modifié avec la nouvelle version, mais je n'arrive pas à trouver comment le faire dans la documentation officielle.

La vérité est que quand je lance le robot sur un site web spécifique, il ne reçoit que cinq pages au plus, et puis continue en boucle autour de l'infini, donc j'ai pensé qu'il a quelque chose à voir avec le keep-alive fonction!

PS:est Demande un bon module pour un site web-crawler?est-il quelque chose de plus adapté?

Merci!!!!

Était-ce utile?

La solution

Ceci fonctionne

s = requests.session()
s.keep_alive = False

répondit dans les commentaires d'une question similaire.

Autres conseils

Je ne suis pas sûr, mais pouvez-vous essayer de passer {"Connexion": "Fermer"} comme des en-têtes HTTP lors de l'envoi d'une demande d'accès à l'aide de demandes.Cela fermera la connexion dès que le serveur renvoie une réponse.

>>> headers = {"Connection": "close"}
>>> r = requests.get('https://example.xcom', headers=headers)

Comme @praveen suggéré qu'il est attendu de nous, à utiliser HTTP/1.1 l'en-tête Connection: close pour indiquer au serveur que la connexion doit être fermé après l'achèvement de la réponse.

Voici comment il est décrit dans La RFC 2616:

HTTP/1.1 définit la "fermeture" de l'option de connexion de l'expéditeur du message pour signaler que la connexion sera fermée après l'achèvement de la réponse.Par exemple,

Connection: close

dans la requête ou de la réponse champs d'en-tête indique que la connexion ne DOIT PAS être considéré comme "persistants" (section 8.1) après la requête/réponse est complète.

HTTP/1.1 applications qui ne prennent pas en charge les connexions persistantes DOIVENT inclure la "fermer" option de connexion à chaque message.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top