banjo / begagnat-bevakning

Lägg in bevakningar på begagnathandeln i Sverige.
0 stars 0 forks source link


Begagnat-bevakning

Bevaka begagnathandeln i Sverige med hjälp av Telegram och Google Cloud functions.
Rapportera ett fel · Begär en funktion

Innehållsförteckning

Om projektet

Detta är ett projekt som jag skapade för att lära mig hantera Google Cloud Functions, web scraping med Beautiful Soup och API-hantering med Python Telegram Bot.

Google Cloud tar emot HTTP GET förfrågningar med sökord och geografisk avgränsning, varpå den läser av Blocket och Tradera efter artiklar som matchar sökordet. Nya artiklar sparas och skickas till en egenskapad Telegramgrupp med information om objektet, länk och foto. Ett ID för annonsen sparas också i en SQL-databas så att det ej skickas en notis för samma produkt två gånger.

Google Cloud Scheduler kan användas för att schemalägga HTTP GET-förfrågningar. Alltså, för att bestämma hur ofta den ska söka igenom hemsidorna.

Detta projektet bör ej användas utan skapades endast i utbildningssyfte.

Byggt med

Startguide

Förutsättningar

Moduler

Samtliga moduler finns angedda i requirements.txt-filen och kan installeras med:

pip -r install requirements.txt

Databas

Programmet använder sig av en Remote SQL-databas. Denna bör innehålla följande:

Det finns ett SQL-script (init_database.sql) som kan köras för att göra det automatiskt.

En databas kan skapas gratis på följande hemsida.

Telegram

Programmet använder sig av telegram för att skicka notiser så fort en ny annons har dykt upp. Skapa en ny telegram-bot på följande länk.

704418931:AAEtcZ*************
https://api.telegram.org/bot<ditt_bot_token>/getUpdates

Installation

  1. Klona repot
git clone https://github.com/banjoanton/begagnat-bevakning.git
  1. Installera alla moduler
pip -r install requirments.txt
  1. Lägg till miljövariabler som kommer användas senare i .env.yaml.
  2. Ladda hem och installera Google Cloud SDK
  3. Ladda upp programmet till Cloud Functions med SDK.
gcloud functions deploy begagnat-bevakning --entry-point main --runtime python37 --trigger-http --env-vars-file .env.yaml
  1. Få adressen genom att besöka Cloud Functions-konsolen eller skriva in:
gcloud functions describe begagnat-bevakning

Användning

Sökningen aktiveras genom HTTP GET förfrågningar, genom att besöka adressen från steg 6 i webläsaren. Med hjälp av GET parametrar kan man justera sökningen:

Exempel - sök efter iPhone i hela Sverige.

https://us-central1-projekt-namn.cloudfunctions.net/begagnat-bevakning?q=iPhone&lan=3

Vid första sökningen kommer alla resultat att visas, vid varje efterkommande sökning visas bara de nya annonserna. Därav blir det en bevakning.

Processen kan automatiseras med Google Cloud Scheduler.