From b7c201e455db1c5f16a03dbdcf31fb99bfecee3b Mon Sep 17 00:00:00 2001 From: Marcelo Andriolli Date: Sun, 20 May 2018 17:21:07 -0300 Subject: [PATCH] =?UTF-8?q?Retrive=20heards=20data=20from=20consulta=20lic?= =?UTF-8?q?ita=C3=A7=C3=B5es=20page=20#3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comprasnet/__init__.py | 6 +- tests/unit/test_class_searchauctions.py | 200 +++++++++++++++++++++++- 2 files changed, 203 insertions(+), 3 deletions(-) diff --git a/comprasnet/__init__.py b/comprasnet/__init__.py index 0c827e7..0d1d9ca 100644 --- a/comprasnet/__init__.py +++ b/comprasnet/__init__.py @@ -149,7 +149,6 @@ def scrap_search_page(self, data): page_results = [] bs_object = BeautifulSoup(data, "html.parser") - header = [] for form in bs_object.find_all('form'): if 'Form' not in form.attrs['name']: continue @@ -166,12 +165,15 @@ def scrap_search_page(self, data): current_result['cidade'] = cidade current_result['uf'] = uf + headers = str(td.b).split('')[1].split('
')[:-2] + headers = [header.strip() for header in headers] + for line in str(td).split("
"): if 'digo da UASG' in line: try: - current_result['cabecalho'] = header + current_result['cabecalho'] = headers codigo_da_uasg_chave = line.split(":")[0] codigo_da_uasg_chave = slugify(codigo_da_uasg_chave) codigo_da_uasg_valor = line.split("digo da UASG: ")[-1].strip() diff --git a/tests/unit/test_class_searchauctions.py b/tests/unit/test_class_searchauctions.py index 4531f7b..cd0b77b 100644 --- a/tests/unit/test_class_searchauctions.py +++ b/tests/unit/test_class_searchauctions.py @@ -63,4 +63,202 @@ def test_method_get_search_page_data(): def test_method_scrap_search_page(): - assert False + filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), + '../assets/result_page_sample.html') + with codecs.open(filename, 'r', 'iso-8859-1') as handle: + page_result_content = handle.read() + + search_auctions = SearchAuctions(day=date(day=11, month=5, year=2018)) + results = search_auctions.scrap_search_page(page_result_content) + + output = [{'abertura-da-proposta': date(2018, 5, 14), + 'abertura-da-proposta-str': '14/05/2018', + 'cabecalho': ['MINISTÉRIO DA DEFESA', + 'Comando do Exército', + 'Comando Militar do Sul', + '1º Batalhão Ferroviário'], + 'cidade': 'Lages', + 'codigo-da-uasg': '160447', + 'edital-a-partir-de': date(2018, 5, 2), + 'edital-a-partir-de-str': '02/05/2018', + 'endereco': ' Rua 2.batalhao Rodoviario,sn * - Conta Dinheiro - Lages (SC)', + 'entrega-da-proposta': date(2018, 5, 2), + 'entrega-da-proposta-str': '02/05/2018', + 'fax': '(49)', + 'objeto': 'Pregão Eletrônico - Eventual aquisição de materiais de ' + 'construção, para utilização na Obra da Construção da Ferrovia das ' + 'Bromélias, Revitalização da Estrada de Acesso ao Destacamento de ' + 'Controle de Espaço Aéreo do Morro da Igreja, Obra da SC 114 ' + '(antiga SC-430), e Sede da OM - manutenção de PNRs e Instalações ' + 'internas do Batalhão.', + 'pregao-eletronico': '122018', + 'telefone': '(49) 32519515', + 'uf': 'SC'}, + {'abertura-da-proposta': date(2018, 5, 14), + 'abertura-da-proposta-str': '14/05/2018', + 'cabecalho': ['MINISTÉRIO DA DEFESA', + 'Comando do Exército', + 'Comando Militar do Sul', + '5ª Região Militar', + '15ªBrigada de Infantaria Mecanizada', + '26ºGrupo de Artilharia de Campanha'], + 'cidade': 'Guarapuava', + 'codigo-da-uasg': '160228', + 'edital-a-partir-de': date(2018, 5, 2), + 'edital-a-partir-de-str': '02/05/2018', + 'endereco': ' Av Manoel Ribas, 2286 - Centro - Centro - Guarapuava (PR)', + 'entrega-da-proposta': date(2018, 5, 2), + 'entrega-da-proposta-str': '02/05/2018', + 'fax': '(42)', + 'objeto': 'Pregão Eletrônico - Aquisição de Material de Acondicionamento e ' + 'Embalagens', + 'pregao-eletronico': '112018', + 'telefone': '(42) 31419115', + 'uf': 'PR'}, + {'abertura-da-proposta': date(2018, 5, 14), + 'abertura-da-proposta-str': '14/05/2018', + 'cabecalho': ['MINISTÉRIO DA DEFESA', + 'Comando do Exército', + 'Comando Militar do Nordeste', + '7ª Região Militar/7ª Divisão de Exército', + '10ªBrigada de Infantaria Motorizada', + '72ºBatalhão de Infantaria Motorizado'], + 'cidade': 'Petrolina', + 'codigo-da-uasg': '160183', + 'edital-a-partir-de': date(2018, 5, 2), + 'edital-a-partir-de-str': '02/05/2018', + 'endereco': ' Av. Cardoso de Sa, S/n - Vila Eduardo - Vila Eduardo - ' + 'Petrolina (PE)', + 'entrega-da-proposta': date(2018, 5, 2), + 'entrega-da-proposta-str': '02/05/2018', + 'fax': '', + 'objeto': 'Pregão Eletrônico - Registro de preços para eventual contratação ' + 'de serviços de gerenciamento, controle e fornecimento de ' + 'combustível por meio de sistema informatizado e utilização de ' + 'cartão eletrônico ou magnético.', + 'pregao-eletronico': '22018', + 'telefone': '', + 'uf': 'PE'}, + {'abertura-da-proposta': date(2018, 5, 14), + 'abertura-da-proposta-str': '14/05/2018', + 'cabecalho': ['MINISTÉRIO DA DEFESA', + 'Comando do Exército', + 'Comando Militar do Sul', + '6ªDivisão de Exército', + '8ªBrigada de Infantaria Motorizada', + '9ºBatalhão de Infantaria Motorizado'], + 'cidade': 'Pelotas', + 'codigo-da-uasg': '160379', + 'edital-a-partir-de': date(2018, 5, 2), + 'edital-a-partir-de-str': '02/05/2018', + 'endereco': ' Av Duque de Caxias, 344 - Bairro Fragata - Fragata - Pelotas ' + '(RS)', + 'entrega-da-proposta': date(2018, 5, 2), + 'entrega-da-proposta-str': '02/05/2018', + 'fax': '(53)', + 'objeto': 'Pregão Eletrônico - Serviço Comum de Engenharia - Adequação da ' + 'Rede Elétrica do 9º Batalhão de Infantaria Motorizado (9º BIMtz).', + 'pregao-eletronico': '22018', + 'telefone': '(53) 33034044', + 'uf': 'RS'}, + {'abertura-da-proposta': date(2018, 5, 15), + 'abertura-da-proposta-str': '15/05/2018', + 'cabecalho': ['Agência de Modernização da Gestão de Processos'], + 'cidade': 'Maceió', + 'codigo-da-uasg': '925998', + 'edital-a-partir-de': date(2018, 5, 2), + 'edital-a-partir-de-str': '02/05/2018', + 'endereco': ' Rua Manoel Nobre, No 281, Farol - - Maceió (AL)', + 'entrega-da-proposta': date(2018, 5, 2), + 'entrega-da-proposta-str': '02/05/2018', + 'fax': '', + 'objeto': 'Pregão Eletrônico - Aquisição de Materiais Elétricos. ATENÇÃO: ' + 'Srs. Licitantes, ao cadastrar a proposta no sistema ComprasNet, ' + 'considerar somente a descrição dos itens contidos no Termo de ' + 'Referência do Edital, sob pena de desclassificação.', + 'pregao-eletronico': '112982017', + 'telefone': '', + 'uf': 'AL'}, + {'abertura-da-proposta': date(2018, 5, 17), + 'abertura-da-proposta-str': '17/05/2018', + 'cabecalho': ['Agência de Modernização da Gestão de Processos'], + 'cidade': 'Maceió', + 'codigo-da-uasg': '925998', + 'edital-a-partir-de': date(2018, 5, 2), + 'edital-a-partir-de-str': '02/05/2018', + 'endereco': ' Rua Manoel Nobre, No 281, Farol - - Maceió (AL)', + 'entrega-da-proposta': date(2018, 5, 2), + 'entrega-da-proposta-str': '02/05/2018', + 'fax': '(82)', + 'objeto': 'Pregão Eletrônico - A presente licitação objetiva o registro de ' + 'preços para a AQUISIÇÃO DE MEDICAMENTOS (ANTI-INFLAMATÓRIOS E ' + 'ANALGÉSICOS) PLS Nº 028/2018', + 'pregao-eletronico': '102792018', + 'telefone': '(82) 33153092', + 'uf': 'AL'}, + {'abertura-da-proposta': date(2018, 5, 17), + 'abertura-da-proposta-str': '17/05/2018', + 'cabecalho': ['Agência de Modernização da Gestão de Processos'], + 'cidade': 'Maceió', + 'codigo-da-uasg': '925998', + 'edital-a-partir-de': date(2018, 5, 2), + 'edital-a-partir-de-str': '02/05/2018', + 'endereco': ' Rua Manoel Nobre, No 281, Farol - - Maceió (AL)', + 'entrega-da-proposta': date(2018, 5, 2), + 'entrega-da-proposta-str': '02/05/2018', + 'fax': '(82)', + 'objeto': 'Pregão Eletrônico - A presente licitação tem por objeto a ' + 'AQUISIÇÃO DE GÊNEROS ALIMENTÍCIOS (MOLHOS E CONDIMENTOS) PLS ' + 'Nº 054/2017', + 'pregao-eletronico': '102772018', + 'telefone': '(82) 99181712', + 'uf': 'AL'}, + {'abertura-da-proposta': date(2018, 5, 16), + 'abertura-da-proposta-str': '16/05/2018', + 'cabecalho': ['Agência de Modernização da Gestão de Processos'], + 'cidade': 'Maceió', + 'codigo-da-uasg': '925998', + 'edital-a-partir-de': date(2018, 5, 2), + 'edital-a-partir-de-str': '02/05/2018', + 'endereco': ' Rua Manoel Nobre, No 281, Farol - - Maceió (AL)', + 'entrega-da-proposta': date(2018, 5, 2), + 'entrega-da-proposta-str': '02/05/2018', + 'fax': '', + 'objeto': 'Pregão Eletrônico - A presente licitação objetiva o registro de ' + 'preços para a AQUISIÇÃO DE EMBALAGEM DE ALUMÍNIO - PLS N¨ ' + '026-2016 EXCLUSIVO', + 'pregao-eletronico': '102752018', + 'telefone': '', + 'uf': 'AL'}, + {'abertura-da-proposta': date(2018, 5, 15), + 'abertura-da-proposta-str': '15/05/2018', + 'cabecalho': ['Agência de Modernização da Gestão de Processos'], + 'cidade': 'Maceió', + 'codigo-da-uasg': '925998', + 'edital-a-partir-de': date(2018, 5, 2), + 'edital-a-partir-de-str': '02/05/2018', + 'endereco': ' Rua Manoel Nobre, No 281, Farol - - Maceió (AL)', + 'entrega-da-proposta': date(2018, 5, 2), + 'entrega-da-proposta-str': '02/05/2018', + 'fax': '', + 'objeto': 'Pregão Eletrônico - Aquisição de materiais de consumo para ' + 'utilização no Laboratório de Microbiologia e Tuberculose.', + 'pregao-eletronico': '102692018', + 'telefone': '', + 'uf': 'AL'}, + {'abertura-da-proposta': date(2018, 5, 15), + 'abertura-da-proposta-str': '15/05/2018', + 'cabecalho': ['Agência de Modernização da Gestão de Processos'], + 'cidade': 'Maceió', + 'codigo-da-uasg': '925998', + 'edital-a-partir-de': date(2018, 5, 2), + 'edital-a-partir-de-str': '02/05/2018', + 'endereco': ' Rua Manoel Nobre, No 281, Farol - - Maceió (AL)', + 'entrega-da-proposta': date(2018, 5, 2), + 'entrega-da-proposta-str': '02/05/2018', + 'fax': '', + 'objeto': 'Pregão Eletrônico - Aquisição de equipamento médico hospitalares', + 'pregao-eletronico': '102662018', + 'telefone': '', + 'uf': 'AL'}] + assert output == results