J'utilise la formidable bibliothèque de requêtes Python . Je remarque que la belle documentation contient de nombreux exemples sur la façon de faire quelque chose sans expliquer pourquoi . Par exemple, les deux r.text
et r.content
sont présentés comme des exemples de la façon d'obtenir la réponse du serveur. Mais où est-il expliqué ce que font ces propriétés? Par exemple, quand devrais-je choisir l'un plutôt que l'autre? Je vois que cela r.text
renvoie parfois un objet Unicode , et je suppose qu'il y aurait une différence pour une réponse non textuelle. Mais où tout cela est-il documenté? Notez que le document lié indique:
Vous pouvez également accéder au corps de la réponse sous forme d'octets, pour les demandes non textuelles:
Mais ensuite, il montre un exemple de réponse textuelle! Je ne peux que supposer que la citation ci-dessus signifie dire non-text responses
au lieu de non-text requests
, car une demande non textuelle n'a pas de sens en HTTP.
Bref, où est la bonne documentation de la bibliothèque, par opposition au (excellent) tutoriel sur le site Requêtes Python?
la source
Réponses:
L' interface développeur a plus de détails:
r.text
est le contenu de la réponse en Unicode etr.content
est le contenu de la réponse en octets.la source
r.text
serait probablement préférable pour les réponses textuelles, comme un document HTML ou XML, etr.content
serait préférable pour les types de fichiers «binaires», comme une image ou un fichier PDF.r.content
, pas au cachér.text
.r.text
etr.content
sous forme de textes. Pourquoi ne pas afficherr.content
sous forme de texte etr.text
de bits (si c'est ce que c'est intrinsèquement)?Il semble clair d'après la documentation que r.content
Si vous lisez plus bas la page, elle adresse par exemple un fichier image
la source
b
précédant le premier exemple avec le texte "pour les demandes non textuelles", ce qui signifie que l'objet est un objet octets. On ne sait pas pourquoi les octets sont affichés sous forme de texte, peut-être que c'est une autre «gentillesse» de Python, mais c'est déroutant dans ce contexte. Merci.requests
de python 3 sur page.content donne cette erreur:if 'rss' in page.content:
->TypeError: a bytes-like object is required, not 'str'