def getEnterprises(): a = HtmlElement(openUrl(buildUrl(URL_ELIST, 'idioma=pt-br'))) d = { '__EVENTTARGET': 'ctl00:contentPlaceHolderConteudo:BuscaNomeEmpresa1:btnTodas', '__VIEWSTATE': a.get_element_by_id('__VIEWSTATE').get('value'), '__EVENTVALIDATION': a.get_element_by_id('__EVENTVALIDATION').get('value'), 'ctl00_contentPlaceHolderConteudo_AjaxPanelBuscaPostDataValue' :'ctl00_contentPlaceHolderConteudo_AjaxPanelBusca,ActiveElement,ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnTodas;', 'ctl00$contentPlaceHolderConteudo$tabMenuEmpresaListada': '{"State":{},"TabState":{"ctl00_contentPlaceHolderConteudo_tabMenuEmpresaListada_tabNome":{"Selected":true}}}', 'ctl00$contentPlaceHolderConteudo$BuscaNomeEmpresa1$txtNomeEmpresa$txtNomeEmpresa': '', 'ctl00$contentPlaceHolderConteudo$mpgPaginas_Selected': '0', 'RadAJAXControlID': 'ctl00_contentPlaceHolderConteudo_AjaxPanelBusca', 'httprequest': 'true' } page = etree.HTML(requests.post(buildUrl(URL_ELIST, 'idioma=pt-br'), data=d).text) tables = getTables(page, DIV_ENTERPRISES) if len(tables) < 1: return for row in tables[0].find('tbody').findall('.//tr'): link = row.find('.//td/a[@href]') yield (parse_qs(urlparse(link.get('href')).query, keep_blank_values=True)['codigoCvm'][0], link.text)
def getDaeCc(nsd, nsr, infos): logging.info('Getting Dados da Empresa - Composicao do Capital - %s %s', nsd, nsr) page = HtmlElement(openUrl(buildUrl(URL_DCC, PARMS_GERAL, PARMS_BPP, PARMS_BPP, 'NumeroSequencialDocumento=' + nsd, 'NumeroSequencialRegistroCvm=' + nsr))) # Multiplicador em = page.xpath('.//div[@id="UltimaTabela"]/table/tr/td/b/text()') m = 1000 if len(em) > 0 and em[0].find('(Mil)') != -1 else 1 for i in ['QtdAordCapiItgz', 'QtdAprfCapiItgz', 'QtdTotAcaoCapiItgz', 'QtdAordTeso', 'QtdAprfTeso', 'QtdTotAcaoTeso']: qnt = page.get_element_by_id('ctl00_cphPopUp_{0}_1'.format(i)) infos[i] = 0 if qnt is None else toInt(qnt.text) * m
def getDfpConBPA(url, infos): logging.info('Getting DFs Consolidadas - Balanco Patrimonial Ativo') t = dict() page = HtmlElement(openUrl(url)) table = page.get_element_by_id(TABLE_BPP) for row in getRows(table): rowToDict(row, t) # Multiplicador m = getMultiplicador(page) # Caixa cxa = toInt(t['1.01.01'][1])*m if '1.01.01' in t else 0 apf = toInt(t['1.01.02'][1])*m if '1.01.02' in t else 0 infos['CAIXA'] = cxa + apf
def getDfpConBPA(nsd, nsr, infos): logging.info('Getting DFs Consolidadas - Balanco Patrimonial Ativo - %s %s', nsd, nsr) t = dict() page = HtmlElement(openUrl(buildUrl(URL_FDF, PARMS_GERAL, PARMS_BPP, 'NumeroSequencialDocumento=' + nsd, 'NumeroSequencialRegistroCvm=' + nsr, 'Informacao=2', 'Demonstracao=2'))) table = page.get_element_by_id(TABLE_BPP) for row in getRows(table): rowToDict(row, t) # Multiplicador m = getMultiplicador(page) # Caixa cxa = toInt(t['1.01.01'][1])*m if '1.01.01' in t else 0 apf = toInt(t['1.01.02'][1])*m if '1.01.02' in t else 0 infos['CAIXA'] = cxa + apf