Como usar o urllib em python

Como usar o urllib em python

Python contém um módulo nomeado urllib Para lidar com as tarefas relacionadas a recursos uniformes (URL). Este módulo está instalado em Python 3 por padrão, e busca URLs de diferentes protocolos através do urlopen () função. O URLLIB pode ser usado para muitos propósitos, como ler o conteúdo do site, fazer solicitações HTTP e HTTPS, enviar cabeçalhos de solicitação e recuperar os cabeçalhos de resposta. O urllib O módulo contém muitos outros módulos para trabalhar com URLs, como urllib.solicitar, urllib.analisar, e urllib.erro, entre outros. Este tutorial mostrará como usar o módulo urllib no Python.

Exemplo 1: Abrir e ler URLs com urllib.solicitar

O urllib.solicitar O módulo contém as classes e métodos necessários para abrir e ler qualquer URL. O script a seguir mostra como usar urllib.solicitar módulo para abrir um URL e ler o conteúdo do URL. Aqui o urlopen () O método é usado para abrir o URL, “https: // www.Linuxhint.coma.”Se o URL for válido, o conteúdo do URL será armazenado na variável de objeto nomeado resposta. O ler() Método do resposta O objeto é então usado para ler o conteúdo do URL.

#!/usr/bin/Env Python3
# Importar módulo de solicitação de urllib
importar urllib.solicitar
# Abra o URL específico para leitura usando Urlopen ()
resposta = urllib.solicitar.Urlopen ('https: // www.Linuxhint.com/')
# Imprima os dados de resposta do URL
print ("A saída do URL é: \ n \ n", resposta.ler())

Saída

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

Exemplo 2: Analisando e desconsiderando URLs com urllib.analisar

O urllib.analisar O módulo é usado principalmente para se separar ou unir 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 script a seguir incluir urlparse, urlunparse, urlsplit, e urlunsplit. O urlparse Módulo funciona como urlsplit, e a urlunparse Módulo funciona como urlunsplit. Há apenas uma diferença entre essas funções; aquilo é, urlparse e urlunparse conter um parâmetro extra chamado 'params'Para dividir e a função de união. Aqui, o URL 'https: // Linuxhint.com/play_sound_python/'é usado para dividir e unir o URL.

#!/usr/bin/Env Python3
# Importar módulo de análise de urllib
importar urllib.analisar
# Parsing URL usando urlparse ()
urlparse = urllib.analisar.urlparse ('https: // linuxhint.com/play_sound_python/')
Imprima ("\ nA saída do URL após a análise: \ n", urlparse)
# Ingressando no URL usando urlunparse ()
urlunparse = urllib.analisar.urlunparse (urlparse)
Imprima ("\ nA saída de união do URL de análise: \ n", urlunparse)
# Parsing URL usando urlsplit ()
urlsplit = urllib.analisar.urlsplit ('https: // linuxhint.com/play_sound_python/')
Imprima ("\ nA saída do URL após a divisão: \ n", urlsplit)
# Juntando -se a URL usando urlunsplit ()
urlunsplit = urllib.analisar.urlunsplit (urlsplit)
print ("\ nA saída de união de URL de divisão: \ n", urlunsplit)

Saída

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

Exemplo 3: Cabeçalho de resposta de leitura de HTML com urllib.solicitar

O script a seguir mostra como as diferentes partes do cabeçalho de resposta do URL podem ser recuperadas através do info () método. O urllib.solicitar 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 através 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
# Importar módulo de solicitação de urllib
importar urllib.solicitar
# Abra o URL para ler
urlResponse = urllib.solicitar.urlopen ('https: // linuxhint.com/python_pause_user_input/')
# Leitura de resposta da resposta do URL
Imprimir (UrlResponse.info ())
# Leitura Informações do cabeçalho separadamente
print ('Response Server =', URLRESPONSE.info () ["servidor"])
Imprimir ('Data de resposta é =', URLRESPONHO.info () ["Date"])
print ('Tipo de conteúdo de resposta é =', UrlResponse.info () ["conteúdo-tipo"])

Saída

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

Exemplo 4: Lendo as respostas da URL linha por linha

Um endereço de URL local é usado no seguinte script. Aqui, um arquivo HTML de teste nomeado teste.html é criado no local, var/www/html. O conteúdo deste arquivo é lido linha por linha através do para laço. O faixa() O 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 O arquivo usado neste exemplo é dado abaixo.

teste.html:



Página de teste


#!/usr/bin/Env Python3
# Importar urllib.Módulo de solicitação
importar urllib.solicitar
# Abra um URL local para leitura
resposta = urllib.solicitar.Urlopen ('http: // localhost/teste.html ')
# Leia o URL da resposta
print ('url:', resposta.geturl ())
# Leia a resposta linha de texto por linha
Print ("\ nreading Content:")
para linha em resposta:
Imprimir (linha.faixa())

Saída

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

Exemplo 5: Manipulação 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 tomado como uma entrada do usuário. Se o endereço não existir, então um Urlerror a exceção será levantada e o motivo do erro será imprimido. Se o valor do URL estiver em um formato inválido, então um ValueError será levantado e o erro personalizado imprimirá.

#!/usr/bin/Env Python3
# Importar módulos necessários
importar urllib.solicitar
importar urllib.erro
# tente bloco para abrir qualquer URL para leitura
tentar:
url = entrada ("Digite qualquer endereço de URL:")
resposta = urllib.solicitar.Urlopen (URL)
Imprimir (resposta.ler())
# Pegue o erro de URL que gerará ao abrir qualquer URL
exceto urllib.erro.Urlerror como e:
print ("Erro de URL:", e.razão)
# Pegue o erro de URL inválido
Exceto ValueError:
print ("Digite um endereço de URL válido")

Saída

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

Exemplo 6: Manipulação 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. Um Htmlerror gera quando o endereço de URL fornecido não existe.

#!/usr/bin/Env Python3
# Importar módulos necessários
importar urllib.solicitar
importar urllib.erro
# Receba a entrada de qualquer URL válido
url = entrada ("Digite qualquer endereço de URL:")
# Enviar solicitação para o URL
solicitação = urllib.solicitar.Solicitação (URL)
tentar:
# Tente abrir o URL
urllib.solicitar.Urlopen (solicitação)
print ("URL existe")
exceto urllib.erro.Httperror como e:
# Imprima o código de erro e o motivo do erro
print ("Código de erro:%d \ nerror razão:%s"%(e.código, e.razão))

Saída

Aqui, o script é executado duas vezes. O primeiro endereço de URL obtido à medida que a entrada existe e o módulo imprimiu uma mensagem. O segundo endereço de URL obtido 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.