Pitão

Como usar o Urllib em Python

Como usar o Urllib em Python

Python contém um módulo chamado urllib para lidar com tarefas relacionadas ao Localizador Uniforme de Recursos (URL). Este módulo é instalado no Python 3 por padrão e busca URLs de diferentes protocolos por meio do urlopen () função. Urllib pode ser usado para muitas finalidades, como ler o conteúdo do site, fazer solicitações HTTP e HTTPS, enviar cabeçalhos de solicitação e recuperar cabeçalhos de resposta. O urllib módulo contém muitos outros módulos para trabalhar com URLs, como urllib.solicitação, urllib.analisar, e urllib.erro, entre outros. Este tutorial mostrará como usar o módulo Urllib em Python.

Exemplo 1: abrindo e lendo URLs com urllib.solicitação

O urllib.solicitação módulo contém as classes e métodos necessários para abrir e ler qualquer URL. O seguinte script mostra como usar urllib.solicitação módulo para abrir um URL e ler o conteúdo do URL. Aqui o urlopen () método é usado para abrir o URL, “https: // www.linuxhint.com /.”Se a URL for válida, o conteúdo da URL será armazenado na variável de objeto chamada resposta. O leitura() método do resposta objeto é então usado para ler o conteúdo do URL.

#!/ usr / bin / env python3
# Módulo de solicitação de importação de urllib
importar urllib.solicitação
# Abra o URL específico para leitura usando urlopen ()
resposta = urllib.solicitação.urlopen ('https: // www.linuxhint.com / ')
# Imprima os dados de resposta do URL
print ("A saída do URL é: \ n \ n", resposta.leitura())

Resultado

A seguinte saída aparecerá após a execução do script.

Exemplo 2: análise e não análise de URLs com urllib.analisar

O urllib.analisar módulo é usado principalmente para separar ou juntar os diferentes componentes de um URL. O script a seguir mostra diferentes usos do urllib.analisar módulo. As quatro funções de urllib.analisar usado no seguinte script incluem urlparse, urlunparse, urlsplit, e urlunsplit. O urlparse módulo funciona como urlsplit, e a urlunparse módulo funciona como urlunsplit. Existe apenas uma diferença entre essas funções; isso é, urlparse e urlunparse contém um parâmetro extra chamado 'params'para a divisão e a função de união. Aqui, o URL 'https: // linuxhint.com / play_sound_python / 'é usado para dividir e juntar o URL.

#!/ usr / bin / env python3
 
# Importar módulo de análise de urllib
importar urllib.analisar
 
# Analisando URL usando urlparse ()
urlParse = urllib.analisar.urlparse ('https: // linuxhint.com / play_sound_python / ')
print ("\ nO resultado do URL após a análise: \ n", urlParse)
 
# URL de associação usando urlunparse ()
urlUnparse = urllib.analisar.urlunparse (urlParse)
print ("\ nO resultado de junção do URL de análise: \ n", urlUnparse)
 
# Analisando URL usando urlsplit ()
urlSplit = urllib.analisar.urlsplit ('https: // linuxhint.com / play_sound_python / ')
print ("\ nO resultado do URL após a divisão: \ n", urlSplit)
 
# URL de associação usando urlunsplit ()
urlUnsplit = urllib.analisar.urlunsplit (urlSplit)
print ("\ nO resultado de junção do URL de divisão: \ n", urlUnsplit)

Resultado

As quatro saídas a seguir aparecerão após a execução do script.

Exemplo 3: Lendo o cabeçalho da resposta de HTML com urllib.solicitação

O script a seguir mostra como as diferentes partes do cabeçalho de resposta do URL podem ser recuperadas por meio do info () método. O urllib.solicitação módulo usado para abrir o URL, 'https: // linuxhint.com / python_pause_user_input /,'e as informações do cabeçalho deste URL são impressas por meio do info () método. A próxima parte deste script mostrará como ler cada parte do cabeçalho separadamente. Aqui o Servidor, Data, e Tipo de conteúdo os valores são impressos separadamente.

#!/ usr / bin / env python3
# Módulo de solicitação de importação de urllib
importar urllib.solicitação
# Abra o URL para leitura
urlResponse = urllib.solicitação.urlopen ('https: // linuxhint.com / python_pause_user_input / ')
# Leitura da saída do cabeçalho de resposta do URL
imprimir (urlResponse.info ())
# Lendo as informações do cabeçalho separadamente
print ('Servidor de resposta =', urlResponse.info () ["Servidor"])
print ('A data de resposta é =', urlResponse.info () ["Data"])
print ('Tipo de conteúdo de resposta é =', urlResponse.info () ["Content-Type"])

Resultado

A seguinte saída aparecerá após a execução do script.

Exemplo 4: Lendo respostas de URL linha por linha

Um endereço de URL local é usado no seguinte script. Aqui, um arquivo HTML de teste chamado teste.html é criado no local, var /www / html. O conteúdo deste arquivo é lido linha por linha por meio do  para ciclo. O faixa() método é então usado para remover o espaço de ambos os lados de cada linha. Você pode usar qualquer arquivo HTML do servidor local para testar o script. O conteúdo do teste.html arquivo usado neste exemplo é dado abaixo.

teste.html:



Página de teste


#!/ usr / bin / env python3
 
# Import urllib.módulo de solicitação
importar urllib.solicitação
 
# Abra um url local para leitura
resposta = urllib.solicitação.urlopen ('http: // localhost / test.html ')
 
# Leia o URL da resposta
imprimir ('URL:', resposta.geturl ())
 
# Leia o texto de resposta linha por linha
imprimir ("\ nLendo conteúdo:")
para linha em resposta:
imprimir (linha.faixa())

Resultado

A seguinte saída aparecerá após a execução do script.

Exemplo 5: tratamento de exceções com urllib.erro.URLError

O script a seguir mostra como usar o URLError em Python através do urllib.erro módulo. Qualquer endereço de URL pode ser considerado uma entrada do usuário. Se o endereço não existir, então um URLError a exceção será gerada e o motivo do erro será impresso. Se o valor do URL estiver em um formato inválido, um ValueError será gerado e o erro personalizado será impresso.

#!/ usr / bin / env python3
 
# Importe os módulos necessários
importar urllib.solicitação
importar urllib.erro
 
# tente bloquear para abrir qualquer URL para leitura
tentar:
url = input ("Insira qualquer endereço URL:")
resposta = urllib.solicitação.urlopen (url)
imprimir (resposta.leitura())
 
# Capture o erro de URL que será gerado ao abrir qualquer URL
exceto urllib.erro.URLError como e:
imprimir ("Erro de URL:", e.razão)
# Capture o erro de URL inválido
exceto ValueError:
imprimir ("Digite um endereço de URL válido")

Resultado

O script é executado três vezes na imagem a seguir. Na primeira iteração, o endereço URL é fornecido em um formato inválido, gerando um ValueError. O endereço URL fornecido na segunda iteração não existe, gerando um URLError. Um endereço de URL válido é fornecido na terceira iteração, e assim o conteúdo do URL é impresso.

Exemplo 6: tratamento de exceções com urllib.erro.Erro HTTP

O script a seguir mostra como usar o Erro HTTP em Python através do urllib.erro módulo. A HTMLError é gerado quando o endereço URL fornecido não existe.

#!/ usr / bin / env python3
# Importe os módulos necessários
importar urllib.solicitação
importar urllib.erro
 
# Aceita qualquer URL válido
url = input ("Insira qualquer endereço URL:")
# Enviar pedido para o URL
request = urllib.solicitação.Solicitar (url)
 
tentar:
# Tente abrir o URL
urllib.solicitação.urlopen (pedido)
imprimir ("URL existe")
exceto urllib.erro.HTTPError como e:
# Imprima o código e o motivo do erro
print ("Código do erro:% d \ n Motivo do erro:% s"% (e.código, e.razão))

Resultado

Aqui, o script é executado duas vezes. O primeiro endereço URL considerado como entrada existe e o módulo imprimiu uma mensagem. O segundo endereço de URL considerado como a entrada não existe e o módulo gerou o Erro HTTP.

Conclusão

Este tutorial discutiu muitos usos importantes do urllib módulo usando vários exemplos para ajudar os leitores a conhecer as funções deste módulo em Python.

WinMouse permite que você personalize e melhore o movimento do ponteiro do mouse no PC com Windows
Se você quiser melhorar as funções padrão do ponteiro do mouse, use um freeware WinMouse. Ele adiciona mais recursos para ajudá-lo a obter o máximo do...
O botão esquerdo do mouse não funciona no Windows 10
Se você estiver usando um mouse dedicado com seu laptop ou computador desktop, mas o o botão esquerdo do mouse não funciona no Windows 10/8/7 por algu...
O cursor pula ou se move aleatoriamente enquanto digita no Windows 10
Se você descobrir que o cursor do mouse pula ou se move por conta própria, de forma automática e aleatória ao digitar em um laptop ou computador com W...