“A biblioteca de solicitações Python é uma das bibliotecas mais versáteis e valiosas do ecossistema Python. Suas características e simplicidade incrível fazem valer a pena em alimentar inúmeras aplicações python.”
Este tutorial nos ensinará a baixar um arquivo de uma determinada URL usando o pacote de solicitações.
Instalação e configuração
Antes de usar o método de solicitações, você deve garantir que ele esteja instalado em seu ambiente. Você pode fazer isso executando o comando pip como mostrado:
$ sudo pip install solicitações
ou
$ sudo pip3 solicitações de instalação
No Windows, você pode executar o comando:
$ python -m PiP Install Solicys
Se você instalou o CONDA, execute o comando:
solicitações de instalação da conda anaconda
Exemplo 1 - Baixe um arquivo simples
Podemos baixar um arquivo usando o módulo de solicitações especificando o URL para o arquivo e usando o módulo de arquivo python para gravar o conteúdo em um determinado nome do arquivo.
Um exemplo de ilustração é mostrado abaixo:
$ touch ~/download_image.py
Edite o arquivo e adicione o código:
$ vim ~/download_image.py
solicitações de importação
url = 'https: // upload.Wikimedia.Org/Wikipedia/Commons/A/Af/Tux.png '
r = solicitações.get (url, allow_redirects = true)
com open ('smoking.png ',' wb ') como f:
f.escritor.contente)
No código acima, começamos importando o módulo de solicitações. Em seguida, criamos uma variável segurando o URL no arquivo que desejamos baixar. Nesse caso, queremos baixar uma imagem.
Na terceira linha, criamos um objeto de resposta HTTP e fazemos uma solicitação para o URL especificado. Também definimos os allowD_redirectos para permitir que o cliente siga os redirecionamentos (se houver). O objeto de resposta é então salvo na variável chamada r.
Finalmente, salve o objeto recebido em um arquivo como smoking.PNG no modo binário.
Você pode verificar o diretório onde o script está localizado para o smoking.arquivo png.
Exemplo 2 - Faça o download de arquivos grandes
No exemplo acima, usamos o r.Conteúdo Func, que armazena o arquivo como uma string. Isso é prático ao baixar pequenos arquivos. No entanto, ao baixar arquivos grandes, a função não lidará com os dados solicitados de uma só vez.
Para resolver isso, precisamos baixar o arquivo como fluxos. Portanto, podemos usar o r.função iter_content e defina o parâmetro do fluxo como true.
Isso ocorre porque usando o r.Content () Função com o parâmetro de fluxo para True apenas manterá a conexão e a resposta aberta e não lerão o arquivo especificado.
O r.A função iter_content nos permite resolver isso.
Um exemplo é como mostrado:
solicitações de importação
url = "https: // hastie.su.domínios/islr2/islrv2_website.pdf "
r = solicitações.get (url, allow_redirects = true, stream = true)
com open ('islrv2.pdf ',' wb ') como arquivo:
Para pedaços em r.iter_content (chunk_size = 1024):
Se Chunk:
arquivo.Escreva (Chunk)
O código acima usa um loop para escrever os pedaços de dados (1024 bytes cada) no arquivo especificado.
Exemplo 3 - Verificação do tipo de arquivo antes do download
Podemos verificar o tipo de conteúdo recebido dos cabeçalhos. Podemos então usar esse valor para verificar se o arquivo que desejamos fazer o download está correto.
Por exemplo, se queremos baixar um arquivo ISO e receber html ou tipo de texto, sabemos que este é um arquivo incorreto e fechar a conexão.
Um código de exemplo é como mostrado:
solicitações de importação
url = "https: // cdimage.Debian.org/Debian-CD/Current/AMD64/ISO-DVD/Debian-11.4.0-AMD64-DVD-1.iso "
r = solicitações.get (url, allow_redirects = true, stream = true)
h = solicitações.cabeça (url, allow_redirects = true)
cabeçalho = h.cabeçalhos
content_type = cabeçalho.Get ('Content-Type')
Se 'html' em content_type.mais baixo():
r.fechar()
print ("Tipo de arquivo incorreto")
se 'texto' em content_type ().mais baixo():
r.fechar()
print ("Tipo de arquivo incorreto")
outro:
com open ('islrv2.iso ',' wb ') como arquivo:
Para pedaços em r.iter_content (chunk_size = 1024):
Se Chunk:
arquivo.Escreva (Chunk)
Fechamento
Você aprendeu a baixar um arquivo usando o módulo Python Solictações neste artigo. Você também aprendeu a baixar arquivos grandes.
Obrigado pela leitura!!