Estou usando a excelente biblioteca de solicitações do Python . Percebo que a boa documentação tem muitos exemplos de como fazer algo sem explicar o porquê . Por exemplo, r.text
e r.content
são mostrados como exemplos de como obter a resposta do servidor. Mas onde é explicado o que essas propriedades fazem? Por exemplo, quando eu escolheria um em vez do outro? Vejo que às vezesr.text
retorna um objeto Unicode e suponho que haveria uma diferença para uma resposta não textual. Mas onde tudo isso está documentado? Observe que o documento vinculado afirma:
Você também pode acessar o corpo da resposta como bytes, para solicitações não textuais:
Mas, em seguida, mostra um exemplo de uma resposta de texto! Só posso supor que a citação acima significa dizer em non-text responses
vez de non-text requests
, já que uma solicitação sem texto não faz sentido em HTTP.
Resumindo, onde está a documentação adequada da biblioteca, ao contrário do (excelente) tutorial no site de solicitações do Python?
fonte
Respostas:
A interface do desenvolvedor tem mais detalhes:
r.text
é o conteúdo da resposta em Unicode er.content
é o conteúdo da resposta em bytes.fonte
r.text
seria preferido para respostas textuais, como um documento HTML ou XML, er.content
seria preferido para tipos de arquivos "binários", como uma imagem ou arquivo PDF.r.content
, não com o encobertor.text
.r.text
er.content
como textos. Por que não mostrarr.content
como texto er.text
como bits (se isso é o que é inerentemente)?Parece claro na documentação que r.content
Se você ler mais adiante na página, ela aborda, por exemplo, um arquivo de imagem
fonte
b
precede o primeiro exemplo com o texto "para solicitações não textuais", o que significa que o objeto é um objeto de bytes. Não está claro porque os bytes estão sendo exibidos como texto, talvez essa seja outra 'sutileza' do Python, mas é confuso neste contexto. Obrigado.requests
em python 3 em page.content dá este erro:if 'rss' in page.content:
->TypeError: a bytes-like object is required, not 'str'