Analisando propostas

Realizar alguns mini projetos de web scrapping

Publicado em 02 de Outubro de 2024 dias na TI e Programação

Sobre este projeto

Aberto

Exercício 1:

Baixe seu perfil no Linkedin em PDF e utilize o PyPDF2 para construir uma função que retorne a string do texto completo do documento.

Exercício 2:

Utilize Regex (módulo `re` nativo do Python) para criar uma função que, a partir do texto extraído, retorne um dicionário com as seguintes informações:

Seu número de telefone;
Seu endereço de email; e
O link do seu perfil no Linkedin.
Exercício 3:

Aplique as funções geradas nas questões 1 e 2 para fazer o mesmo com o pdf em anexo (perfil do professor) e crie um csv com todas as informações extraídas (colunas: nome, telefone, email e perfil, tanto do pdf de vocês quanto do fornecido) utilizando o módulo `csv` nativo do python. Obs.: Ao final os padrões utilizados no Regex devem abarcar os conteúdos dos dois PDFs.

Parte 2 APIs

Exercício 4:

Explore o “playground” da API do SimilarWeb encontrada no RapidAPI (https://rapidapi.com/Glavier/api/similarweb12/playground/) e inscreva-se no plano gratuito, então crie um código para obter os dados dos 10 primeiros sites listados em “top-websites”, salvando-os em um dataframe do Pandas e enfim em um arquivo CSV usando o próprio Pandas.

Parte 3 XPath

Exercício 5:

Utilize o arquivo XML em anexo e a biblioteca `lxml` com caminhos relativos de XPath para:

Selecionar os nomes de todos *estudantes* que estejam no 2º ano ou acima dele;
Selecionar o nome do *professor* de Estruturas de Dados (course: "Data Structures");
Selecionar os títulos de todos os *cursos* ofertados pelo departamento de Ciência da Computação (department: Computer Science);
Selecionar os nomes de todos os *departamentos* que sejam pertencentes à Escola de Engenharia (college: Engineering).
Parte 4 CSS

Exercício 6:

Utilize o arquivo xml em anexo e a biblioteca `lxml` com seletores de css para:

selecionar os títulos de todos os cursos cujos professores possuem estabilidade (tenure);
selecionar os títulos de todos os cursos que possuem horário de início pela manhã (am). Dica: cuidado com nomes antigos de pseudo-classes, caso algum não funcione tente o nome antigo.
Parte 5 WebCrawling

Exercício 7:

Examine um site de sua escolha na lista de sites fornecida em anexo e descubra o padrão de URL para paginação que ele aceita. Então, utilize-o para obter uma lista de links de notícias requisitando as 2 primeiras páginas e raspando os links de cada uma através de um único seletor de CSS aplicado via `BeautifulSoup`.

Parte 6 WebScraping

Exercício 8:

Faça um loop para os 3 primeiros links da lista obtida na questão anterior requisitando o HTML de cada página com a biblioteca que preferir (`urllib`, `requests`, etc.) E aplicando funções baseadas em `Beautifulsoup` para capturar e por fim salvar em um mesmo arquivo json, junto à url de cada notícia e ao datetime do momento da requisição de cada página:

o objeto datetime (timezone-aware) da data e hora da publicação da notícia;
o título da notícia;
o corpo do texto da notícia;
o subtítulo da notícia (se houver);
o autor ou autores da notícia (se houver).
Parte 7 Scrapy

Exercício 9:

Escolha um dos sites da lista fornecida (que não tenha sido escolhido nas anteriores) para montar um projeto no Scrapy que abarque tanto o Crawling quanto o Scraping, a fim de rodá-lo tal como na questão anterior.

Parte 8 Selenium

Exercício 10:

Extraia uma lista de empregos do site https://br.indeed.com. Extraia os títulos dos empregos da primeira página de resultados ao pesquisar por "Data Scientist" na área da capital de seu estado. O site usa JavaScript para carregar as listas dinamicamente, o que significa que você não pode recuperar esses dados simplesmente usando solicitações ou BeautifulSoup. Escreva um script em Python usando Selenium para extrair os títulos dos empregos desta página junto a outras informações que você considere relevante.

Contexto Geral do Projeto

Usar o mínimo possível de chatGPT ou qualquer outra AI, caso contrário não vou aceitar pois quero entender o código como se fosse de uma pessoa.

Categoria TI e Programação
Subcategoria Data Science
Tamanho do projeto Pequeño
Isso é um projeto ou uma posição de trabalho? Um projeto
Disponibilidade requerida Conforme necessário

Prazo de Entrega: 04 de Outubro de 2024

Habilidades necessárias

Outro projetos publicados por S. A. P.