def carrega_plano(): URL = 'https://www.redecredenciada.mobi/mobile-guia/v2/ws-plano.php' parametros = {'id_operadora':19, 'formatacao_texto':2, 'conv_id':'', 'default_label_sessao_outros_planos':'Outros planos', 'default_label_sessao_meus_planos':'Meu plano'} tipo = 'html' metodo = 'get' plano = None # Chamada da função para criar um BS a partir de uma url while True: try: erro, msg_erro, bs = busca_pagina(URL, tipo, parametros, metodo) break except Exception as e: print(e) print(parametros) continue if erro: # Salva log de erro grava_msg_erro(msg_erro) return try: planos = bs.find_all('li') except Exception as e: msg_erro = gera_msg_erro(e, 'Falhou no bs.find_all') grava_msg_erro(msg_erro) return if not planos: msg_erro = gera_msg_erro(None, 'Falhou no bs.find_all') grava_msg_erro(msg_erro) return for plano in planos: try: id_plano = plano.find('div').get('data-id') nome = plano.find('div').get('data-nome') ans = plano.find('em').text.split('|')[0].strip().split(':')[1].strip() tipo = plano.find('em').text.split('|')[1].strip() status = plano.find('strong').text.strip() except Exception as e: msg_erro = gera_msg_erro(e, 'Falhou na busca de atributos') grava_msg_erro(msg_erro) return erro, msg_erro = grava_plano(id_plano, nome, ans, tipo, status) if erro: grava_msg_erro(msg_erro) return
def carrega_municipio(): erro, msg_erro, ufs = busca_uf() if erro: # Salva log de erro grava_msg_erro(msg_erro) return for uf in ufs: id_uf = uf[0] id_plano = uf[1] sg_uf = uf[3] URL = 'https://www.redecredenciada.mobi/mobile-guia/v2/ws-cidade.php' parametros = { 'id_operadora': 19, 'id_estado': sg_uf, 'id_plano': id_plano, 'formatacao_texto': '1590362791956' } tipo = 'html' metodo = 'get' while True: try: erro, msg_erro, bs = busca_pagina(URL, tipo, parametros, metodo) break except Exception as e: print(e) print(parametros) continue if erro: # Salva log de erro grava_msg_erro(msg_erro) return try: municipios = bs.find('ul').find_all('a') for municipio in municipios: cd_municipio = municipio.get('data-id') nm_municipio = municipio.text erro, msg_erro = grava_municipio(id_uf, cd_municipio, nm_municipio) except Exception as e: msg_erro = gera_msg_erro( e, 'Falhou na busca montagem dos municipios') grava_msg_erro(msg_erro) return #erro, msg_erro = grava_plano(nome, ans, tipo, status) if erro: grava_msg_erro(msg_erro) return
def carrega_uf(): erro, msg_erro, planos = busca_plano() if erro: # Salva log de erro grava_msg_erro(msg_erro) return for plano in planos: id_plano = plano[0] URL = 'https://www.redecredenciada.mobi/mobile-guia/v2/ws-estado-unico.php' parametros = { 'true': '', 'id_operadora': 19, 'id_plano': id_plano, '_': '1590356909735' } tipo = 'json' metodo = 'get' # Chamada da função para criar um BS a partir de uma url while True: try: erro, msg_erro, bs = busca_pagina(URL, tipo, parametros, metodo) break except Exception as e: print(e) print(parametros) continue if erro: # Salva log de erro grava_msg_erro(msg_erro) return try: for uf in bs['estados']: cd_uf = uf['id'] sg = uf['uf'] nome = uf['nome'] codigo_IBGE = uf['codigo_IBGE'] erro, msg_erro = grava_uf(id_plano, cd_uf, sg, nome, codigo_IBGE) if erro: grava_msg_erro(msg_erro) return except Exception as e: msg_erro = gera_msg_erro(e, 'Falhou na busca de estados') grava_msg_erro(msg_erro) return
def carrega_especialidade(): erro, msg_erro, planos = busca_plano() if erro: # Salva log de erro grava_msg_erro(msg_erro) return for plano in planos: id_plano = plano[0] URL = 'https://www.redecredenciada.mobi/mobile-guia/v2/ws-especialidade.php' parametros = {'id_operadora':19, 'id_cidade': '', 'id_plano': id_plano, 'id_estado': '', 'bairro': '', 'formatacao_texto':'2', 'force_especialidade':'S', 'id_tipo_prestador': ''} tipo = 'html' metodo = 'get' while True: try: erro, msg_erro, bs = busca_pagina(URL, tipo, parametros, metodo) break except Exception as e: print(e) print(parametros) continue if erro: # Salva log de erro grava_msg_erro(msg_erro) return try: especialidades = bs.find('ul').find_all('a') for especialidade in especialidades: cd_especialidade = especialidade.get('data-id') nm_especialidade = especialidade.text erro, msg_erro = grava_especialidade(id_plano, cd_especialidade, nm_especialidade) except Exception as e: msg_erro = gera_msg_erro(e, 'Falhou na busca montagem dos bairros') grava_msg_erro(msg_erro) return if erro: grava_msg_erro(msg_erro) return
def carrega_tipo_prestador(): erro, msg_erro, planos = busca_plano() if erro: # Salva log de erro grava_msg_erro(msg_erro) return for plano in planos: id_plano = plano[0] URL = 'https://www.redecredenciada.mobi/mobile-guia/v2/ws-tipo-prestador.php' parametros = { 'id_operadora': 19, 'id_cidade': '', 'id_plano': id_plano, 'id_estado': '', 'bairro': '', 'formatacao_texto': '2', '_': '1590376516866', 'force_especialidade': 'S' } tipo = 'html' metodo = 'get' while True: try: erro, msg_erro, bs = busca_pagina(URL, tipo, parametros, metodo) break except Exception as e: print(e) print(parametros) continue if erro: # Salva log de erro grava_msg_erro(msg_erro) return try: tipos_prestador = bs.find('ul').find_all('a') for tp in tipos_prestador: cd_tipo_prestador = tp.get('data-id') if cd_tipo_prestador: nm_tipo_prestador = tp.text else: continue erro, msg_erro = grava_tipo_prestador(id_plano, cd_tipo_prestador, nm_tipo_prestador) except Exception as e: msg_erro = gera_msg_erro(e, 'Falhou na busca montagem dos bairros') grava_msg_erro(msg_erro) return #erro, msg_erro = grava_plano(nome, ans, tipo, status) if erro: grava_msg_erro(msg_erro) return
def carrega_lista_prestador(): erro, msg_erro, prestador_bairro_especialidade = busca_tipo_prestador_bairro_especialidade( ) if erro: # Salva log de erro grava_msg_erro(msg_erro) return for pbe in prestador_bairro_especialidade: id_plano = pbe[0] id_uf = pbe[2] id_cidade = pbe[3] id_bairro = pbe[5] bairro = pbe[6] id_tipo_prestador = pbe[7] cd_tipo_prestador = pbe[8] id_especialidade = pbe[10] cd_especialidade = pbe[11] URL = 'https://www.redecredenciada.mobi/mobile-guia/v2/ws-busca.php' parametros = { 'id_operadora': 19, 'id_plano': id_plano, 'id_estado': id_uf, 'id_cidade': id_cidade, 'bairro': bairro, 'id_tipo_prestador': cd_tipo_prestador, 'id_especialidade': cd_especialidade, 'regiao_tipo': 'endereco', 'utiliza_secoes': 'N', 'agrupa_espec': 'N', 'formatacao_texto': '2', 'paged': '0' } tipo = 'html' metodo = 'get' while True: try: erro, msg_erro, bs = busca_pagina(URL, tipo, parametros, metodo) break except Exception as e: print(e) print(parametros) continue if erro: # Salva log de erro grava_msg_erro(msg_erro) return try: prestadores = bs.find_all('table', {'class': 'resultados-lista'}) if prestadores is None: prestadores = bs.find_all('table', {'class': 'resultados-lista '}) for prestador in prestadores: cd_prestador = prestador.get('data-id') nome = prestador.find('h5') if nome is not None: nm_prestador = nome.text.strip() else: nm_prestador = '' especialidade = prestador.find("span", {"class": "color-2"}) if especialidade is not None: nm_especialidade = especialidade.text.strip() else: nm_especialidade = '' tel_todos = '' telefones = prestador.find('div', { 'class': 'telefones' }).find_all('p') if telefones is not None: for telefone in telefones: if tel_todos == '': tel_todos += f'{telefone.span.text}' else: tel_todos += f'|{telefone.span.text}' endereco = prestador.find('h6') if endereco is not None: nm_logradouro_ampliado = endereco.text.strip() else: nm_logradouro_ampliado = '' bairro = endereco.next_sibling.next_sibling nm_bairro = bairro.span.text mun_uf = bairro.next_sibling.next_sibling.span.text nm_municipio = mun_uf.split('/')[0] sg_uf = mun_uf.split('/')[1] # print(cd_prestador) # print(nome) # print(especialidade) # print(f'Nome: {nm_prestador}, especialidade: {nm_especialidade}') # print(tel_todos) # print(nm_logradouro_ampliado) # print(nm_bairro) # print(f'{nm_municipio}/{sg_uf}') erro, msg_erro = grava_lista_prestador( id_tipo_prestador, id_bairro, id_especialidade, cd_prestador, nm_prestador, nm_especialidade, nm_logradouro_ampliado, nm_bairro, nm_municipio, sg_uf, tel_todos) except Exception as e: msg_erro = gera_msg_erro(e, 'Falhou na busca montagem dos bairros') grava_msg_erro(msg_erro) return # erro, msg_erro = grava_plano(nome, ans, tipo, status) if erro: grava_msg_erro(msg_erro) return
def carrega_tipo_prestador_bairro_especialidade_temp(): erro, msg_erro, ufs = busca_uf_temp() if erro: # Salva log de erro grava_msg_erro(msg_erro) return for uf in ufs: id_uf = uf[0] id_plano = uf[1] sg_uf = uf[3] erro, msg_erro, municipios = busca_municipio_temp(id_uf) if erro: # Salva log de erro grava_msg_erro(msg_erro) return for municipio in municipios: id_municipio = municipio[0] cd_municipio = municipio[2] erro, msg_erro, bairros = busca_bairro_temp(id_municipio) if erro: # Salva log de erro grava_msg_erro(msg_erro) return for bairro in bairros: id_bairro = bairro[0] nm_bairro = remover_acentos(bairro[2].strip().upper()) erro, msg_erro, tipos_prestador_bairros = busca_tipo_prestador_bairro( None, id_bairro) if erro: grava_msg_erro(msg_erro) return for tipo_prestador_bairro in tipos_prestador_bairros: id_tipo_prestador = tipo_prestador_bairro[0] erro, msg_erro, tipo_prestador = busca_tipo_prestador( id_tipo_prestador, id_plano) if erro: grava_msg_erro(msg_erro) return cd_tipo_prestador = tipo_prestador[0][2] URL = 'https://www.redecredenciada.mobi/mobile-guia/v2/ws-especialidade.php' parametros = { 'id_operadora': 19, 'id_cidade': cd_municipio, 'id_plano': id_plano, 'id_estado': sg_uf, 'bairro': nm_bairro, 'id_tipo_prestador': cd_tipo_prestador, 'formatacao_texto': '2', '_': '1590376516866', 'force_especialidade': 'S' } tipo = 'html' metodo = 'get' while True: try: erro, msg_erro, bs = busca_pagina( URL, tipo, parametros, metodo) break except Exception as e: print(e) print(parametros) continue if erro: # Salva log de erro grava_msg_erro(msg_erro) return try: especialidades = bs.find('ul').find_all('a') for especialidade in especialidades: cd_especialidade = especialidade.get('data-id') erro, msg_erro, especialidade = busca_especialidade( None, id_plano, cd_especialidade, None) if erro: grava_msg_erro(msg_erro) return id_especialidade = especialidade[0][0] erro, msg_erro = grava_tipo_prestador_bairro_especialidade( id_tipo_prestador, id_bairro, id_especialidade) except Exception as e: msg_erro = gera_msg_erro( e, 'Falhou na busca montagem dos bairros') grava_msg_erro(msg_erro) return if erro: grava_msg_erro(msg_erro) return