Skip to content

Este projeto, tem como principal objetivo fazer consultas em notícias sobre tecnologia. As notícias foram obtidas através da raspagem de dados usando python, do blog da Trybe.

License

Notifications You must be signed in to change notification settings

ludson96/project-tech-news

Repository files navigation

Repositório do projeto Tech News 🗞️

Módulo: CIÊNCIA DA COMPUTAÇÃO

Repositório possuí projeto desenvolvido no período que estive na Trybe, abordando conceitos de POO, Raspagem de dados e banco de dados.

Informações de aprendizados

  • Este é um projeto desenvolvido para praticar Python;
  • Primeiro projeto usando MongoDB com Python;
  • Utilizei o Pytest para fazer meus testes;
  • Utilizei os módulos request e parsel para fazer raspagem e pymongo para usar mongodb com python.

Linguagens e ferramentas usadas

Git Python Pytest Mongo

O que foi desenvolvido

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.

Habilidades trabalhadas

  • 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

Instruções para instalar e rodar

  1. Clone o repo:

    git clone git@github.com:Ludson96/project-tech-news.git
    
  2. Entre na pasta do repositório que você acabou de clonar:

    cd project-tech-news
    
  3. Caso não tenha instalado o python, pode usar o docker:

    docker build -t nome-da-imagem
    
    docker run -it nome-da-imagem
  4. Caso não tenha instalado o MongoDB, pode usar o docker-compose:

    docker-compose up -d 
  5. Crie e ative o ambiente virtual:

    python3 -m venv .venv && source .venv/bin/activate
    
  6. Instale as dependências no ambiente virtual:

    python3 -m pip install -r dev-requirements.txt
  7. Para rodar todos os testes utilize o comando:

    python3 -m pytest
  8. Para rodar apenas em um arquivo:

    python3 -m pytest <path do arquivo>
    
  9. Para executar a classe principal execute o comando abaixo:

    tech-news-analyzer
    
    #siga os passos no terminal
    

Raspagem

Abaixo está uma lista das funções de raspagem disponíveis no arquivo scraper.py.

fetch(url)

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")

scrape_updates(html_content)

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)

scrape_next_page_link(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)

scrape_news(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)

get_tech_news(n)

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.

About

Este projeto, tem como principal objetivo fazer consultas em notícias sobre tecnologia. As notícias foram obtidas através da raspagem de dados usando python, do blog da Trybe.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published