DOI: 10.5281/zenodo.15548619
title: Desinformação: AosFatos

description: Descrição da arquitetura, tecnologias e passos adotados para a extração das informações do serviço de fact-checking  AosFatos em Python - por meio do processo de Web Scraping (extração de dados da web).

Aos Fatos – lista de checagens e páginas de detalhes de cada verificação. O objetivo foi coletar, para cada verificação/artigos checados, os campos: 

a) URL;b) Título;c) Data; d) Assunto;e) Classificação;f) Tipo (sempre “Checagem”);g) Autor.

Os dados foram salvos em dois formatos: CSV (UTF-8) e Excel (.xlsx).

 

2 - Tecnologias e Stack






Camada     



Ferramenta / Biblioteca





Linguagem



Python 3.10+





Automação



Selenium WebDriver 4.x





Navegador Headless



Google Chrome + ChromeDriver





Esperas



WebDriverWait + expected conditions





Manipulação CSV



módulo csv (builtin)





Planilha Excel



openpyxl





DataFrame



pandas (opcional)





Regex



re (builtin)





Pausa



time.sleep





 

3 - Arquitetura da Solução                 url_list_aosfatos.py                           |                           v

Script principal do scrapingEtapa 1 - Inicia o Selenium headless ChromeEtapa 2 - Para a lista de URL (AosFatos):          { driver.get(url)          { espera e extrai campos via CSS          { escreve linha em CSV/ExcelEtapa 3 - Fecha driver, salva arquivos.

4 - Fluxo de Coleta

1 - Listagem: Acessa a listagem de checagens e captura links.2 - Página de verificação: Para cada URL, extrai com seletores próprios.(e.g., título, autor, data, assunto, classificação) e define o tipo da “Checagem”.

 

5  - Escrita Incremental de DadosPara persistência imediata:a) CSV: abre em append e grava cada registro após scraping.b) Excel: usa openpyxl.Workbook(), ws.append(row) por item, e salva ao final.Cabeçalho comum: url, título, data, assunto, classificação, tipo, autor.

 

6 Exemplo de pseudocódigoimport csv, timefrom selenium import webdriver# ...with open(’dados.csv’,’w’,encoding=’utf-8’) as f:      writer = csv.writer(f)      writer.writerow([...])      for url in urls:           driver.get(url)           time.sleep(3)           # extrai campos           writer.writerow([url, titulo, data, assunto, classificacao, ’Checagem’, autor]) driver.quit()

 

7 Boas Práticasa) Usar seletores robustos, hierarquia quando possível.b) Definir timeouts e esperas para evitar travamentos.c) Execução headless para automação sem UI.d) Gravação incremental para evitar perda de dados.

 

A classificação da coluna C foi feita manualmente pela equipe:

Usando a orientação da legenda: Desinf. Educação: qualquer abordagem envolvendo educação.Desinf. Científica: fake Science, negacionismo, teoria da conspiração - temas com enfoque na ciência. Desinf. Gênero: violência de gênero -  desinformação envolvendo mulheres.Desinf. Saúde: qualquer subtemática de saúde, vacina, medicamentos, tratamentos, procedimentos.Desinf. Ansiedade Informacional - envolve saúde mental e consumo de conteúdos na web.Desinf. Ambiental - envolve meio ambiente.Outros tipos de desinformação.

Essa etapa foi feita pela equipe:

Dilyanne Ferreira Tavares - UFALhttps://orcid.org/0009-0001-7935-4869

Camilla de Moura Gomes - UFALhttps://orcid.org/0009-0004-3614-0184

Erick Bruno Ferreira Santos - UFBAhttps://orcid.org/0009-0000-5726-3838

Coordenada da professora: Juliana Fachin - UFALhttps://orcid.org/0000-0003-0883-642X