#-----------------------------------------------------------------------
#                                            Prof. Dr. Walmes M. Zeviani
#                                leg.ufpr.br/~walmes · github.com/walmes
#                                        walmes@ufpr.br · @walmeszeviani
#                      Laboratory of Statistics and Geoinformation (LEG)
#                Department of Statistics · Federal University of Paraná
#                                       2019-abr-19 · Curitiba/PR/Brazil
#-----------------------------------------------------------------------

#-----------------------------------------------------------------------
# Importa módulos.

import requests
import webbrowser as wb

dir(requests)        # Conteúdo do módulo.
requests.__version__ # Versão.

#-----------------------------------------------------------------------
# Fazendo requisição simples para entender os componentes.

url = "http://www.webscrapingfordatascience.com/basichttp"
type(url)

wb.open(url)

r = requests.get(url)
type(r) # Classe do objeto.
dir(r)  # Conteúdo/métodos do objeto.

r.status_code     # Número que indica condição.
r.reason          # Descrição da condição.
r.headers         # Cabeçalho de requisição.
r.request         # Requisição.
r.request.headers # Cabeçalho de resposta.
r.text            # Corpo da resposta.

#-----------------------------------------------------------------------
# Um site com mais conteúdo.

url = "http://leg.ufpr.br/~walmes/docs/"

r = requests.get(url)

r.status_code     # Número que indica condição.
r.headers         # Cabeçalho de requisição.
r.request.headers # Cabeçalho de resposta.
r.text            # Corpo da resposta.

# Para exibir conforme é o documento.
print(r.text)

#-----------------------------------------------------------------------
# URL que possuem parâmetros.

url = "http://www.webscrapingfordatascience.com/paramhttp"
type(url)

wb.open(url)

url = "http://www.webscrapingfordatascience.com/paramhttp/?query=test"
wb.open(url)

r = requests.get(url)

r.status_code     # Número que indica condição.
r.headers         # Cabeçalho de requisição.
r.request.headers # Cabeçalho de resposta.
r.text            # Corpo da resposta.

r.request.url

#-----------------------------------------------------------------------
# Um site que tem conteúdo baseado na query string.

url = "https://www.carrosnaweb.com.br/opiniaolista.asp?fabricante=Renault&modelo=Duster"
wb.open(url)

r = requests.get(url)

r.request.url     # URL usada.
r.status_code     # Número que indica condição.
r.headers         # Cabeçalho de requisição.
r.request.headers # Cabeçalho de resposta.
r.text[:1000]     # Corpo da resposta.

# Separando URL dos parâmetros.
url = "https://www.carrosnaweb.com.br/opiniaolista.asp"
params = {"fabricante": "Renault", "modelo": "Duster"}

r = requests.get(url, params = params)
r.request.url
r.text[:1000]

#-----------------------------------------------------------------------
