Repositório possuí projeto desenvolvido no período que estive na Trybe, abordando conceitos de POO
, Raspagem de dados
e banco de dados
.
- Este é um projeto desenvolvido para praticar
Python
; - Primeiro projeto usando
MongoDB
comPython
; - Utilizei o
Pytest
para fazer meus testes; - Utilizei os módulos
request
eparsel
para fazer raspagem epymongo
para usar mongodb com python.
Este projeto, tem como principal objetivo fazer consultas em notícias sobre tecnologia.
As notícias foram obtidas através da raspagem do blog da Trybe.
- Utilizar o terminal interativo do Python
- Escrever seus próprios módulos e importá-los em outros códigos
- Aplicar técnicas de raspagem de dados
- Extrair dados de conteúdo HTML
- Armazenar os dados obtidos em um banco de dados
-
Clone o repo:
git clone git@github.com:Ludson96/project-tech-news.git
-
Entre na pasta do repositório que você acabou de clonar:
cd project-tech-news
-
Caso não tenha instalado o python, pode usar o docker:
docker build -t nome-da-imagem docker run -it nome-da-imagem
-
Caso não tenha instalado o MongoDB, pode usar o docker-compose:
docker-compose up -d
-
Crie e ative o ambiente virtual:
python3 -m venv .venv && source .venv/bin/activate
-
Instale as dependências no ambiente virtual:
python3 -m pip install -r dev-requirements.txt
-
Para rodar todos os testes utilize o comando:
python3 -m pytest
-
Para rodar apenas em um arquivo:
python3 -m pytest <path do arquivo>
-
Para executar a classe principal execute o comando abaixo:
tech-news-analyzer #siga os passos no terminal
Abaixo está uma lista das funções de raspagem disponíveis no arquivo scraper.py
.
Essa função recebe uma URL como parâmetro, realiza uma solicitação GET na URL e retorna o conteúdo HTML da página.
Exemplo de uso:
html_content = fetch("https://www.example.com")
Essa função recebe o conteúdo HTML da página como parâmetro e retorna uma lista de links para as atualizações de notícias no site.
Exemplo de uso:
news_links = scrape_updates(html_content)
Essa função recebe o conteúdo HTML da página como parâmetro e retorna o link para a próxima página de atualizações.
Exemplo de uso:
next_page_link = scrape_next_page_link(html_content)
Essa função recebe o conteúdo HTML da página como parâmetro e retorna um dicionário com informações sobre uma notícia específica.
Exemplo de uso:
news_info = scrape_news(html_content)
Essa função recebe um número inteiro n como parâmetro e retorna uma lista com as últimas n notícias do site.
Exemplo de uso:
latest_news = get_tech_news(10)
docker-compose.yml
fornecido pela trybe.