Projeto desenvolvido no módulo de ciência da computação na instituição 🖱️Trybe, com o objetivo de raspar dados (scraper) de uma página usando python e inserir no banco de dados (mongodb).
Estrutura do projeto e descrição dos arquivos que foram desenvolvidos por mim.
Legenda:
🔸Arquivos desenvolvidos pela Trybe (não foram alterados).
🔹Arquivos desenvolvidos por mim.
.
├── tech_news
│ ├── analyzer
│ │ ├── 🔹ratings.py
│ │ └── 🔹search_engine.py
│ ├── 🔸database.py
│ └── 🔹menu.py
│ └── 🔹scraper.py
├── tests
│ ├── 🔸assets/*
│ ├── 🔸__init__.py
│ ├── 🔸generate_fixture.py
│ ├── 🔸news.py
│ ├── 🔸test_menu.py
│ ├── 🔸test_ratings.py
│ ├── 🔸test_scraper.py
│ ├── 🔸test_search_engine.py
│ └── 🔸utils.py
├── 🔸dev-requirements.txt
├── 🔸docker-compose.yml
├── 🔸Dockerfile
├── 🔸pyproject.toml
├── 🔹README.md
├── 🔸requirements.txt
├── 🔸setup.cfg
├── 🔸setup.py
└── 🔸trybe.yml
1 - Clone o repositório
git clone [email protected]:Ytellon/tech-news-python.git
2 - Crie ambiente virtual e instale as dependências
cd tech-news/
python3 -m venv .venv && source .venv/bin/activate
python3 -m pip install -r dev-requirements.txt
3 - Rode o banco de dados via docker
docker-compose up -d mongodb
- Para inserir e listar uma quantidade de notícias.
- Use o comando:
python3 -i tech_news/scraper.py
- Depois:
get_tech_news(quantidade_de_news)
- Retorno:
>>> get_tech_news(1) [ { "url":"https://blog.betrybe.com/tecnologia/informatica-basica/", "title":"Informática básica: o que é e quais os 16 conceitos principais", "timestamp":"09/11/2022", "writer":"Lucas Custódio", "comments_count":0, "summary":"Os computadores dominaram o mundo. Por isso, é uma grande vantagem ter algum conhecimento em Informática básica, especialmente se você for da área de tecnologia.", "tags":[ ], "category":"Tecnologia" } ]
- Pesquisar notícias por título.
- Use o comando:
python3 -i tech_news/analyzer/search_engine.py
- Depois:
search_by_title("Informática")
- Retorno - Uma lista com o título e o link para a notícia:
>>> search_by_title("Informática") [('Informática básica: o que é e quais os 16 conceitos principais', 'https://blog.betrybe.com/tecnologia/informatica-basica/')]
- Pesquisar notícias por data.
- Use o comando:
python3 -i tech_news/analyzer/search_engine.py
- Depois:
search_by_date("2022-11-09")
- Retorno - Uma lista com o título e o link para a notícia:
>>> search_by_date("2022-11-09") [('Informática básica: o que é e quais os 16 conceitos principais', 'https://blog.betrybe.com/tecnologia/informatica-basica/')]