Código passado durante o curso:
import re
class ExtratorURL:
def __init__(self,url):
self.url=self.sanitiza_url(url)
self.valida_url()
def sanitiza_url(self,url):
if type(url)==str:
return url.strip()
else:
return ""
def valida_url(self):
if not self.url:
raise ValueError("A URL está vazia!")
padrao_url=re.compile('(http(s)?://)?(www.)?bytebank.com(.br)?/cambio')
match=padrao_url.match(self.url)
if not match:
raise ValueError("A URL não é valida.")
def get_url_base(self):
indice_interrogacao=self.url.find('?')
url_base=self.url[:indice_interrogacao]
return url_base
def get_url_parametros(self):
indice_interrogacao=self.url.find('?')
url_parametros=self.url[indice_interrogacao+1:]
return url_parametros
def get_valor_paramentro(self,parametro_busca):
indice_parametro=self.get_url_parametros().find(parametro_busca)
indice_comercial=self.get_url_parametros().find('&',indice_parametro)
indice_valor=self.get_url_parametros().find('=',indice_parametro)+1
if(indice_comercial!=-1):
valor=self.get_url_parametros()[indice_valor:indice_comercial]
else:
valor=self.get_url_parametros()[indice_valor:]
return valor
def __len__(self):
return len(self.url)
def __str__(self):
return self.url + "\n" + "Parâmetros: " + self.get_url_parametros() + "\n" + "URL Base: " + self.get_url_base()
def __eq__(self,other):
return self.url==other.url
Metodo de Conversão:
def converte(self,dolar):
quantidade=self.get_valor_paramentro('quantidade')
moeda=self.get_valor_paramentro('moedaOrigem')
if moeda=='real':
return int(quantidade)/dolar
else:
return int(quantidade)*dolar
url=ExtratorURL("bytebank.com/cambio?moedaDestino=real&quantidade=100&moedaOrigem=dolar")
print(url.converte(5))
500