Git Product home page Git Product logo

olx-scrap-de-produtos's Introduction

olx-scrap-de-produtos [projeto deprecado]


Bot desenvolvido para facilitar a vida de quem busca diariamente itens específicos no OLX.

  • Ele identifica os itens encontrados e extrai o título do produto, valor, e localidade do vendedor.
  • Salva os anuncios encontrados no banco de dados.
  • Identifica se algum destes anúncios é novo.
  • Caso seja um anúncio novo detectado pelo item acima, um bot no Telegram irá te avisar que uma nova pessoa anunciou o produto em questão.

Atualmente utilizo o Beautiful Soup para fazer o web scrap e o Peewee para manipular o banco.

Screenshots:


Como utilizar o bot

  • Para utilizar somente o bot pronto, basta acessá-lo neste link e começar a cadastrar seus produtos com o comando /busca <nome_do_produto>

Como fazer seu próprio bot

Caso queira subir seu próprio servidor e criar seu próprio bot, siga os passos:

  • Crie um bot no telegram clique aqui caso não saiba como
  • Clone o projeto
  • Inicialize um ambiente virtual com o comando: python -m venv venv
  • Ative o ambiente virtual com: source venv/bin/activate
  • Instale as dependências: pip install -r requirements.txt
  • Crie um arquivo chamado config.ini na raíz do projeto, e coloque nele o token do seu bot e as configurações do banco de dados seguindo o modelo:

config.ini

  • Inicialize o banco de dados com o comando python initialize_db.py
  • Para manter o código sempre "escutando", mantenha sempre executando o arquivo: python listener.py
  • Para procurar pelos produtos cadastrados, rode o arquivo: python checker.py (geralmente programo uma cron para rodar este comando todos os dias automaticamente)

TODO:

  • Organizar estrutura de arquivos e pastas pois está uma zona

olx-scrap-de-produtos's People

Contributors

renanstn avatar dependabot[bot] avatar

Stargazers

Alaor Jr. avatar Eder Braz avatar  avatar

Watchers

 avatar  avatar

Forkers

gvmturl

olx-scrap-de-produtos's Issues

Comando para solicitante apagar a sua base

Fala irmao boa noite, tudo bem?

1# Nao é possivel adaptar um comando no bot para o proprio solicitante apagar suas linhas na DB?
Algo do tipo:
DELETE FROM solicitacoes WHERE id_solicitante = solicitante;

2# Tambem algum codigo que o proprio solicitante possa rodar o checker.py desde o bot mesmo? Fiz essas mudanças no listener.py

import time
while True:
exec(open('checker.py').read())
time.sleep(3600) #A cada hora ele executa o checker.py
print("Checker executado depois de 1 hora") #Informa o administrador sobre Checker.py executado

3# Acho que tambem seria legal ter um comando /listaprodutos que mostrasse quais os produtos o solicitante tem na sua lista. Acredito que tambem teria que ter um arquivo checkprodutos.py que rodasse depois deste comando ser solicitado, ne?

4# Outra duvida, o scrapper so traz resultado com preco e anuncios postados no dia da busca dia ne?
Nao seria legal se o solicitantante depois de escolher o produto pudesse escolher a partir de today quantos dias a menos ele queria:

0 = Hoje
1 = Ontem
2= 2 dias atrás
3 = 3 dias atrás
4 = 4 dias atrás
5 = 5 dias atrás
6 = 6 dias atrás
7 = 1 semana atrás
30 = 1 mês atrás
365 = 1 ano atrás

5# É possivel adaptar para trazer o telefone, caso o anuncio tenha telefone? Nao trazer anuncios so com telefone, mas se tiver tel, tambem trazer o resultado dele... Acho que isso englobaria fazer login no olx ne? Ja que solicita estar logado para pegar o tel completo.
e trazer essa mensagem diferente em caso de ter telefone no scrapper.py

mensagem = "Novo produto encontrado:\n\n- {}\n- Valor: R$ {:.2f}\n- Local: {}\n- Link: {}\n".format( anuncio['titulo'], int(anuncio['preco']), anuncio['local'], anuncio['link'] )

6# BUG - O usuario pode adicionar produto com o nome ja cadastrado.

Aguardo sua resposta.

Obrigado e boas festas.

AttributeError: 'NoneType' object has no attribute 'find_all'

Fala @renanstd tudo tranquilao?

Estou tentando voltar a rodar o script depois de bastante tempo sem executar para fazer uns testes, mas estou tendo o erro

AttributeError: 'NoneType' object has no attribute 'find_all'

Quando eu executo o checker.py Sabe o que pode ser?

Sabe se alguma coisa mudou? Voce indica algum conteudo para aprender o bs4?

Estarei atento a sua resposta,

Abracos.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.