O Python fornece várias maneiras de baixar arquivos da Internet. Isso pode ser feito por HTTP usando o pacote urllib ou a biblioteca request. Este tutorial discutirá como usar essas bibliotecas para baixar arquivos de URLs usando Python.
Biblioteca de solicitações
A biblioteca request é uma das bibliotecas mais populares do Python. As solicitações permitem que você envie solicitações HTTP/1.1 sem a necessidade de adicionar strings de consulta manualmente às suas URLs ou codificar seus dados POST manualmente.
Com a biblioteca de solicitações, você pode executar várias funções, incluindo:
- adicionando dados de formulário,
- adicionando arquivos multipartes,
- e acessando os dados de resposta do Python
Fazendo pedidos
O primeiro que você precisa fazer é instalar a biblioteca e é tão simples quanto:
Para testar se a instalação foi bem-sucedida, você pode fazer um teste bem fácil em seu interpretador Python simplesmente digitando:
Se a instalação for bem-sucedida, não haverá erros.
As solicitações HTTP incluem:
- PEGUE
- PUBLICAR
- POR
- EXCLUIR
- OPÇÕES
- CABEÇA
Fazendo uma solicitação GET
Fazer solicitações é muito fácil, conforme ilustrado abaixo.
1 |
import requests |
2 |
req = requests.get(“https://www.google.com”) |
O comando acima obterá a página da web do Google e armazenará as informações noreq
variável. Podemos então obter outros atributos também.
Por exemplo, para saber se a busca da página da web do Google foi bem-sucedida, consultaremos o status_code
.
1 |
import requests |
2 |
req = requests.get(“https://www.google.com") |
3 |
req.status_code
|
4 |
200
|
5 |
|
6 |
# 200 means a successful request
|
E se quisermos descobrir o tipo de codificação da página da web do Google?
1 |
req.encoding |
2 |
ISO-8859–1 |
Você também pode querer saber o conteúdo da resposta.
Este é apenas um conteúdo truncado da resposta.
1 |
' | ||||
4 |
hat you're looking for." name="description">" name="robots" |
||||
5 |
>; charset=UTF-8" http-equiv="Content-Type"> |
||||
6 |
t="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image |
||||
7 |
"> |