- Resumo 📄
- Requisitos 🛠
- Introdução ☀
- Pipeline do Projeto 🛠
- Funcionalidades 🚀
- Metodologia 🧪
- Resultados e Conclusões 📈
- Considerações Finais 🚀
- Agradecimentos 👏
Este projeto foi um dos primeiros que realizei em python e foi desenvolvido para automatizar o processo de extração de informações sobre vagas de emprego no site oficial do CNPEM (Centro Nacional de Pesquisa em Energia e Materiais) como parte do meu emprego na Coractium (uma startup de educação e gerenciamento de carreira para cientistas). O script utiliza técnicas de web scraping com a biblioteca BeautifulSoup para acessar a página de vagas abertas do CNPEM e coletar dados estruturados sobre as oportunidades disponíveis. As informações são processadas e organizadas em um arquivo Excel, permitindo fácil análise e visualização dos dados.
A partir da URL principal, o código faz uma requisição à página, simula o comportamento de um navegador real através de um User-Agent customizado, e coleta as seguintes informações:
- Título da Vaga: Nome ou descrição da oportunidade.
- Data de Publicação: Indica quando a vaga foi publicada ou atualizada.
- Resumo da Vaga: Uma breve descrição com os principais requisitos ou informações sobre a vaga.
- Tratamento de Erros SSL: O código desativa verificações SSL (não recomendado para produção) para facilitar a raspagem em um ambiente seguro, mas simplificado.
- Verificação de Status HTTP: Garante que a página foi carregada com sucesso antes de iniciar a extração de dados.
- Exportação para Excel: Os dados coletados são organizados em um
DataFramedopandase exportados para um arquivo Excel chamadovagas_cnpem.xlsx. Este formato permite a integração com ferramentas como Power BI, Excel, ou outros scripts Python para análises adicionais.
- Suporte a múltiplas páginas de vagas.
- Envio de notificações por e-mail para alertar sobre novas oportunidades.
- Adição de filtros personalizados para buscar vagas específicas por área ou palavra-chave.
Com o CNPEM Job Scraper, o processo de monitoramento e análise de oportunidades no site do CNPEM se torna muito mais eficiente e rápido, economizando tempo e esforço manual.
Certifique-se de ter as seguintes dependências instaladas:
- Python 3.8 ou superior
- Bibliotecas:
beautifulsoup4pandasopenpyxlrequests
O CNPEM Job Scraper foi desenvolvido para automatizar a extração de dados sobre vagas de emprego no site oficial do Centro Nacional de Pesquisa em Energia e Materiais (CNPEM). Utilizando técnicas de web scraping, o projeto coleta informações detalhadas sobre oportunidades abertas e as organiza em um formato estruturado para facilitar o acesso e análise.
O principal objetivo deste projeto é simplificar o processo de monitoramento de vagas no site do CNPEM, economizando tempo e esforço manual. Com este script, é possível:
- Extrair informações de forma automática, incluindo títulos de vagas, datas de publicação e resumos.
- Armazenar os dados em um arquivo Excel para análises adicionais ou integração com outras ferramentas.
- Servir como base para futuras implementações, como notificações automáticas ou análise avançada das oportunidades disponíveis.
A pipeline deste projeto foi estruturada em etapas simples e organizadas para garantir a coleta, processamento e armazenamento dos dados de vagas do site do CNPEM. Abaixo estão as etapas detalhadas:
- Instalação das bibliotecas necessárias:
beautifulsoup4,pandas,openpyxlerequests. - Configuração de permissões para desativar verificações SSL (somente em ambiente de desenvolvimento).
- Realiza uma requisição HTTP para acessar a página de vagas abertas no site do CNPEM.
- Define um
User-Agentpara simular o comportamento de um navegador real, garantindo uma comunicação mais confiável com o servidor.
- Utiliza a biblioteca
BeautifulSouppara parsear o HTML da página e localizar as informações desejadas. - Coleta os seguintes dados:
- Título da Vaga
- Data de Publicação
- Resumo da Vaga
- Os dados extraídos são organizados em um
DataFramedopandas. - São salvos em um arquivo Excel (
vagas_cnpem.xlsx) para facilitar o acesso e a análise futura.
- Verifica o status da requisição HTTP para garantir que os dados foram coletados corretamente.
- Confirma que o arquivo Excel foi gerado com sucesso no diretório do projeto.
- Suporte para múltiplas páginas de vagas, permitindo a raspagem de um volume maior de dados.
- Implementação de filtros automáticos para buscar vagas específicas por área ou palavra-chave.
- Integração com notificações por e-mail para alertar sobre novas vagas.
- Coleta informações de títulos de vagas, datas de publicação e resumos das oportunidades.
- Armazena os dados coletados em um arquivo Excel (
vagas_cnpem.xlsx). - Fácil de configurar e personalizar para outros sites de vagas, com ajustes no código.
A execução deste projeto foi dividida em etapas para garantir uma abordagem sistemática e organizada no processo de extração e processamento dos dados. Abaixo, apresento os métodos utilizados:
- Instalação das bibliotecas essenciais:
beautifulsoup4: Para web scraping e análise do HTML.pandas: Para manipulação e organização dos dados em formato tabular.requests: Para realizar requisições HTTP.openpyxl: Para exportar os dados no formato Excel.
- Configuração de permissões e desativação de verificações SSL com a biblioteca
urllib3, facilitando a conexão com o site do CNPEM.
- Requisição HTTP:
- Foi feita uma requisição para a URL do site do CNPEM utilizando um
User-Agentcustomizado para simular o comportamento de um navegador real.
- Foi feita uma requisição para a URL do site do CNPEM utilizando um
- Tratamento de Respostas HTTP:
- Verificação do código de status para garantir que a página foi acessada com sucesso antes de iniciar o processamento.
- Utilizando o
BeautifulSoup, o script parseou o HTML da página e identificou os seguintes elementos:- Título da Vaga: Extraído de elementos
<h3>. - Data de Publicação: Localizada em elementos
<time>com classe específica. - Resumo da Vaga: Obtido a partir de elementos
<div>com a classe correspondente.
- Título da Vaga: Extraído de elementos
- Organização dos Dados:
- Os dados coletados (título, data, resumo) foram armazenados em listas separadas.
- Em seguida, essas listas foram combinadas em um
DataFramedopandas.
- Exportação:
- O
DataFramefoi exportado para um arquivo Excel (vagas_cnpem.xlsx) utilizando o móduloopenpyxl. - O arquivo gerado contém as colunas:
- Título da Vaga
- Data
- Resumo
- O
- O script verifica:
- A existência e o conteúdo das listas após a extração.
- Se o arquivo Excel foi gerado com sucesso e está no formato correto.
- Tratamento de possíveis erros de conexão ou ausência de dados.
- Automatizar a coleta de dados para múltiplas páginas.
- Adicionar filtros para vagas específicas, como área ou data de publicação.
- Implementar notificações automáticas para alertar sobre novas oportunidades.
Após a execução do script, os dados das vagas do site do CNPEM foram coletados com sucesso e armazenados em um arquivo Excel (vagas_cnpem.xlsx). Os principais resultados obtidos incluem:
-
Dados Extraídos:
- Título da Vaga: O nome ou descrição principal da oportunidade.
- Data de Publicação: Indica quando a vaga foi publicada ou atualizada no site.
- Resumo da Vaga: Uma breve descrição da oportunidade, incluindo requisitos ou informações importantes.
-
Exemplo de Formato do Arquivo Gerado: O arquivo Excel gerado contém as seguintes colunas organizadas:
Título da Vaga Data Resumo Pesquisador Sênior 20/11/2024 Oportunidade para liderar projetos inovadores. Técnico de Laboratório 15/11/2024 Suporte técnico em análises laboratoriais. -
Automação do Processo:
- O script automatizou com sucesso a coleta de dados, eliminando a necessidade de acesso manual ao site para monitorar vagas.
-
Exportação e Organização:
- Os dados coletados foram organizados em um
DataFramedopandase exportados para o formato Excel, permitindo integração com ferramentas como Power BI ou análise avançada em Python.
- Os dados coletados foram organizados em um
O projeto CNPEM Job Scraper demonstrou ser uma solução eficaz para monitorar e coletar informações sobre vagas de emprego do site do CNPEM. As principais conclusões incluem:
-
Eficiência no Processo:
- A automação reduziu significativamente o tempo necessário para acessar e coletar informações, tornando o monitoramento mais rápido e menos suscetível a erros humanos.
-
Qualidade dos Dados:
- O script foi capaz de extrair informações precisas e organizadas, demonstrando a robustez do uso de
BeautifulSouppara web scraping.
- O script foi capaz de extrair informações precisas e organizadas, demonstrando a robustez do uso de
-
Reusabilidade:
- A estrutura modular do código facilita sua adaptação para outros sites semelhantes, ampliando o alcance do projeto.
-
Limitações Identificadas:
- O script atualmente funciona apenas para uma página de vagas e não possui suporte para múltiplas páginas.
- Requer desativação de verificações SSL, o que não é recomendado para ambientes de produção.
-
Próximos Passos:
- Expandir a funcionalidade para suportar múltiplas páginas de vagas.
- Implementar notificações automáticas via e-mail para alertar sobre novas oportunidades.
- Adicionar filtros avançados para personalizar a coleta de dados por área ou palavra-chave.
Com este projeto, foi possível não apenas automatizar a coleta de dados de vagas, mas também criar uma base sólida para futuras expansões e melhorias. A aplicação é uma ferramenta útil para quem deseja acompanhar as oportunidades no CNPEM de forma rápida e eficiente.
O CNPEM Job Scraper apresentou uma solução prática e eficiente para monitorar as vagas de emprego no site do CNPEM, automatizando a coleta e organização das informações. Este projeto destacou a importância e a aplicabilidade de técnicas de web scraping para resolver problemas do dia a dia, especialmente quando há a necessidade de acessar grandes volumes de dados de maneira repetitiva.
-
Eficiência Operacional:
- A automação do processo eliminou a necessidade de visitas manuais frequentes ao site, economizando tempo e esforço.
- O uso de ferramentas como
BeautifulSoupepandaspossibilitou a criação de um pipeline robusto e reutilizável.
-
Impacto Prático:
- O projeto facilita o acompanhamento de novas oportunidades de emprego, especialmente para profissionais que buscam atuar no CNPEM.
- O arquivo Excel gerado oferece uma forma acessível de organizar e visualizar os dados, podendo ser integrado a outras ferramentas para análises mais avançadas.
-
Flexibilidade e Escalabilidade:
- A estrutura do código é modular e pode ser facilmente adaptada para outros sites ou requisitos específicos.
- Há espaço para expansão, como suporte a múltiplas páginas, notificações automáticas e filtros personalizados.
Apesar de seus benefícios, o projeto possui algumas limitações que podem ser abordadas em futuras versões:
- Atualmente, o script coleta dados apenas da primeira página de vagas.
- A desativação de verificações SSL é funcional para desenvolvimento, mas não é ideal para ambientes de produção.
- Não há filtros ou notificações automáticas, o que pode limitar o uso para acompanhamento em tempo real.
- Implementar suporte a múltiplas páginas de vagas.
- Adicionar notificações automáticas por e-mail ou outras plataformas, como Telegram ou WhatsApp.
- Desenvolver filtros dinâmicos para buscar vagas específicas por área, data ou palavras-chave.
- Garantir conformidade com verificações SSL para uso em ambientes de produção.
Em resumo, o projeto CNPEM Job Scraper mostrou como tecnologias simples e acessíveis podem ser utilizadas para criar ferramentas altamente úteis no contexto profissional. Ele serve como base para futuras aplicações e demonstra o potencial de automação de tarefas rotineiras, promovendo eficiência e praticidade.
Gostaria de expressar minha gratidão às seguintes entidades pelo suporte e contribuição para o desenvolvimento deste projeto:
-
Coractium: Pelo apoio e orientação durante o planejamento e execução deste projeto, proporcionando uma experiência prática e desafiadora que contribuiu para meu aprendizado e crescimento profissional.
-
Centro Nacional de Pesquisa em Energia e Materiais (CNPEM): Pela disponibilização pública das informações sobre vagas de emprego, permitindo que este projeto automatizasse a coleta de dados e ajudasse a tornar as oportunidades mais acessíveis.
Este trabalho não seria possível sem o apoio dessas organizações, que desempenham um papel importante na disseminação do conhecimento e no incentivo à inovação.
- LinkedIn: Eduardo Coqueiro
- Site: Eduardo Coqueiro
- Kaggle: Eduardo Coqueiro

