Estou tentando fazer o projeto proposto, mas a saída não está como esperado. Não sei aonde estou errando.
class ExtratorArgumentosUrl:
def __init__(self, url):
if self.url_eh_valida(url):
self.url = url.lower()
else:
raise LookupError('Url Inválida!')
@staticmethod
def url_eh_valida(url):
if url and url.startswith('https://www.bytebank.com'):
return True
else:
return False
def extrai_argumentos(self):
busca_moeda_origem = "moedaorigem=".lower()
busca_moeda_destino = "moedadestino=".lower()
inicio_substring_moeda_origem = self.encontra_indice_inicio_substring(busca_moeda_origem)
final_substring_moeda_origem = self.url.find("&")
moeda_origem = self.url[inicio_substring_moeda_origem:final_substring_moeda_origem]
if moeda_origem == 'moedadestino':
self.troca_moeda_origem()
inicio_substring_moeda_origem = self.encontra_indice_inicio_substring(busca_moeda_origem)
final_substring_moeda_origem = self.url.find("&")
moeda_origem = self.url[inicio_substring_moeda_origem:final_substring_moeda_origem]
inicio_substring_moeda_destino = self.encontra_indice_inicio_substring(busca_moeda_destino)
final_substring_moeda_destino = self.encontra_indice_inicio_substring("&valor")
moeda_destino = self.url[inicio_substring_moeda_destino:final_substring_moeda_destino]
return moeda_origem, moeda_destino
def retorna_valor(self):
busca_valor = "valor".lower()
inicio_substring_valor = self.encontra_indice_inicio_substring(busca_valor)
valor = self.url[inicio_substring_valor:]
return valor
def encontra_indice_inicio_substring(self, moeda_ou_valor):
return self.url.find(moeda_ou_valor) + len(moeda_ou_valor)
def troca_moeda_origem(self):
self.url = self.url.replace("moedadestino", "real", 1)
print(self.url)
Esse é o do meu ExtratorArgumentosUrl.py
from ExtratorArgumentosUrl import ExtratorArgumentosUrl
url = 'https://www.bytebank.com.br/cambio?moedaorigem=real&moedadestino=dolar&valor=150'
argumentosurl = ExtratorArgumentosUrl(url)
moedaOrigem, moedaDestino = argumentosurl.extrai_argumentos()
valor = argumentosurl.retorna_valor()
print(moedaOrigem, moedaDestino, valor)
Esse é o meu main.py
A saída está sendo: "real dolar&valor =150"
Desde já agradeço.