Coder Social home page Coder Social logo

zmesror / avito-trackr Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 26 KB

A Python web scraper for Avito.ma, providing real estate data insights for the Moroccan market.

Python 100.00%
python scraper scrapy scrapy-crawler scrapy-spider web-automation web-scraping

avito-trackr's Introduction

AvitoTrackr : Suivi de l'évolution des prix immobiliers au Maroc

AvitoTrackr est conçu pour recueillir des données sur l'évolution des prix de l'immobilier au Maroc à partir du site avito.ma. Ces données sont ensuite stockées dans une base de données MySQL, permettant de calculer le prix moyen par m2 des appartements dans différentes villes, et de les afficher graphiquement avec Matplotlib.

Table des matières

Installation

Avant d'utiliser AvitoTrackr, assurez-vous d'avoir Python (version 3.6 ou supérieure) installé sur votre système.

  1. Clonez le dépôt GitHub :

    git clone https://github.com/your-user/avito-trackr.git
    
  2. Installez les dépendances requises :

    pip install -r requirements.txt
    
  3. Créez un fichier de configuration config.json et placez-le dans le répertoire avito_trackr/avitoscraper. Le format du fichier de configuration doit être le suivant :

    {
        "api_key": "VOTRE_CLÉ_API"
    }

Note : La clé API est utilisée pour obtenir des user agents.

Utilisation

Configuration

Avant d'utiliser l'application, assurez-vous d'avoir configuré le fichier config.json avec votre clé API, que vous devez obtenir sur ScrapeOps.

Collecte de Données

La collecte de données est gérée par Scrapy. Les données collectées seront automatiquement stockées dans la base de données MySQL spécifiée.

Exécution des Spiders Scrapy

Pour exécuter les spiders Scrapy et spécifier la base de données pour le stockage des données, vous pouvez suivre ces étapes :

  1. Ouvrez le fichier pipelines.py dans le répertoire avito_trackr/avitoscraper.

  2. Dans le fichier pipelines.py, vous pouvez spécifier les paramètres de la base de données pour le stockage des données. Assurez-vous d'avoir configuré votre base de données MySQL avec les configurations nécessaires dans les paramètres.

  3. Une fois que vous avez configuré les paramètres de la base de données, vous pouvez exécuter les spiders Scrapy avec la commande suivante :

scrapy crawl propertyspider

Cette commande lancer le spider propertyspider, qui commencera à collecter des données à partir du site avito.ma et à les stocker dans la base de données MySQL spécifiée dans SaveToMySQLPipeline.

Enregistrement des Données Collectées dans un Fichier

Si vous souhaitez enregistrer les données collectées dans un fichier (par exemple, JSON ou CSV), vous pouvez utiliser la commande suivante :

scrapy crawl propertyspider -O file.json

ou

scrapy crawl propertyspider -O file.csv

Cette commande exécutera les spiders et enregistrera les données collectées dans le fichier spécifié, au format JSON ou CSV.

Analyse des Données et Visualisation

L'analyse des données et la visualisation sont gérées par le fichier price.py dans le répertoire data. Il contient une classe Price qui permet de calculer diverses statistiques sur les données.

Pour effectuer une analyse ou générer des graphiques, vous pouvez utiliser le script principal price.py en passant des arguments pour spécifier ce que vous souhaitez faire.

Exemples d'utilisation :

  • Pour calculer le prix moyen par mètre carré pour une ville spécifique :

    python price.py --city Casablanca
    
  • Pour calculer le prix moyen par mètre carré pour toutes les villes :

    python price.py --calculate-all
    
  • Pour générer des graphiques des moyennes par ville :

    python price.py --calculate-all --plot-cities
    
  • Pour calculer le prix moyen par mètre carré sur une période donnée :

    python price.py --time 5
    
  • Pour générer un graphique de l'évolution des prix au fil du temps :

    python price.py --time 5 --plot-time
    

N'hésitez pas à explorer les options disponibles dans price.py pour personnaliser votre analyse et vos graphiques.

Note : Il est important de noter que ce projet est principalement destiné à des fins d'apprentissage.

Contribuer

Si vous souhaitez contribuer au projet AvitoTrackr, nous vous accueillons avec des suggestions, des rapports de bogues ou des demandes de fonctionnalités. Vous pouvez ouvrir une issue sur GitHub ou soumettre une pull request.

avito-trackr's People

Contributors

zmesror avatar

Stargazers

Daoudi El Mehdi avatar Ismail Tlemcani avatar

Watchers

 avatar

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.