Skip to content

IKuuhakuI/Python-Web-Scraping

Repository files navigation

Trabalho Final: C++ e Python Web Scraping

Por: Luiz Carlos Aguiar Carrion e Maria Eduarda Mafra

Objetivo

O objetivo do trabalho é o de criar uma aplicação que integre duas linguagens de programação diferentes. Para o projeto, as linguagens escolhidas foram o C++ e Python3

Como tema do trabalho, decidimos implementar um programa para fazer web scraping em sites de compras online (amazon, americanas e submarino).

Requisitos

Versão do Python: 3.8

Versão do C++: 11

Instalar: python3.8-dev

$ sudo apt-get install python3.8-dev

Bibliotecas do python:

$ pip3 install requests_html

$ pip3 install lxml

$ pip3 install beautifulsoup4

Execução

Para executar o programa, siga esses passos:

  1. Make

$ make webScraping

  1. Executar

$ ./webScraping

  • Comando extra

$ make clean

Estrutura do Programa

O programa está dividido em duas partes principais: o sistema de coleta e o sistema de gerenciamento das informações. O primeiro sistema foi implementado em python, enquanto o segundo em c++. A figura abaixo ilustra o funcionamento do sistema:

alt text

Sistema de Gerenciamento

O sistema de gerenciamento foi feito em C++. Ele é baseado na classe Product que guarda as informações mais relevantes do produto (seu nome, preço, url e a loja). Baseado nisso, o programa tem 5 funções principais.

  1. Busca por produto

Nessa opção, o usuário irá entrar com um produto e uma faixa de preço. Essas informações serão passadas para o sistema de coleta (feito com o python3). Em seguida, o sistema de coleta irá retornar os resultados da busca para o programa gerenciador, no qual ele irá filtrar todos os dados e, por fim, irá retornar somente um único produto para o usuário. O resultado pode ser adicionado na lista de desejos.

  1. Ver lista de produtos

Essa opção funciona de maneira similar a descrita anteriormente. A principal diferença é que, em vez do usuário fazer uma busca entre todas as lojas e receber somente um único resultado, ele irá buscar por um produto em uma loja específica e receberá várias resultados da pesquisa. O usuário poderá adicionar qualquer um dos resultados na lista de desejos.

  1. Configurar lojas

Essa opção serve para que o usuário possa escolher quais são as lojas que serão utilizadas na busca do item 1 .

  1. Comparação de preços entre lojas

Nessa opção, o usuário poderá comparar o preço de um produto entre 2 lojas. Cada loja irá retornar um resultado. Qualquer um dos dois resultados pode ser adicionado para a lista de desejos.

  1. Lista de desejos

A lista de desejos é um local no qual o usuário poderá salvar produtos de seu interesse. Nessa opção, ele pode remover qualquer produto que não queira mais. A persistência dos dados será feita através do arquivo 'wishList.csv'.

Sistema de Coleta

O sistema de coleta é feito em python. Ao utilizar a biblioteca BeautifulSoup, é possível fazer uma requisição para uma página web, no qual será retornada o html da página. Depois disso, o próprio sistema de coleta irá filtrar pelos dados de nome do produto, preço e o link. O arquivo .py irá receber dados como: o nome do produto e a loja. Ele irá retornar uma tupla com todos os produtos que se enquadram no que foi pedido.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published