Maison développement back-end Tutoriel Python Implémenter l'enregistrement et l'analyse de données basées sur des séries chronologiques à l'aide de Scrapy et MongoDB

Implémenter l'enregistrement et l'analyse de données basées sur des séries chronologiques à l'aide de Scrapy et MongoDB

Jun 22, 2023 am 10:18 AM
mongodb 时间序列 scrapy

Avec le développement rapide de la technologie du Big Data et de l'exploration de données, les gens accordent de plus en plus d'attention à l'enregistrement et à l'analyse des données de séries chronologiques. En termes de robots d'exploration Web, Scrapy est un très bon framework de robots et MongoDB est une très bonne base de données NoSQL. Cet article explique comment utiliser Scrapy et MongoDB pour mettre en œuvre l'enregistrement et l'analyse de données basées sur des séries chronologiques.

1. Installation et utilisation de Scrapy

Scrapy est un framework de robot d'exploration de sites Web implémenté en langage Python. Nous pouvons utiliser la commande suivante pour installer Scrapy :

pip install scrapy
Copier après la connexion

Une fois l'installation terminée, nous pouvons utiliser Scrapy pour écrire notre robot. Ci-dessous, nous utiliserons un exemple simple de robot pour comprendre l'utilisation de Scrapy.

1. Créez un projet Scrapy

Dans le terminal de ligne de commande, créez un nouveau projet Scrapy via la commande suivante :

scrapy startproject scrapy_example
Copier après la connexion

Après le projet est créé, nous pouvons entrer dans le répertoire racine du projet via la commande suivante :

cd scrapy_example
Copier après la connexion

2 Écrivez un robot

Nous pouvons créer un nouveau robot via la commande suivante :

scrapy genspider example www.example.com
Copier après la connexion

L'exemple ici est le nom du robot d'exploration personnalisé, et www.example.com est le nom de domaine du site Web exploré. Scrapy générera un fichier de modèle de robot par défaut. Nous pouvons modifier ce fichier pour écrire le robot.

Dans cet exemple, nous explorons une page Web simple et enregistrons le contenu texte de la page Web dans un fichier texte. Le code du robot est le suivant :

import scrapy

class ExampleSpider(scrapy.Spider):
    name = "example"
    start_urls = ["https://www.example.com/"]

    def parse(self, response):
        filename = "example.txt"
        with open(filename, "w") as f:
            f.write(response.text)
        self.log(f"Saved file {filename}")
Copier après la connexion

3. Exécutez le robot

Avant d'exécuter le robot, nous définissons d'abord la configuration de Scrapy. Dans le répertoire racine du projet, recherchez le fichier settings.py et définissez ROBOTSXT_OBEY sur False afin que notre robot d'exploration puisse explorer n'importe quel site Web.

ROBOTSTXT_OBEY = False
Copier après la connexion

Ensuite, nous pouvons exécuter le robot via la commande suivante :

scrapy crawl example
Copier après la connexion

Une fois l'opération terminée, nous pouvons voir un exemple dans le répertoire racine du projet txt. fichier, qui stocke le contenu textuel des pages Web que nous avons explorées.

2. Installation et utilisation de MongoDB

MongoDB est une très excellente base de données NoSQL. Nous pouvons installer MongoDB à l'aide de la commande suivante :

sudo apt-get install mongodb
Copier après la connexion

Une fois l'installation terminée, nous devons démarrer le service MongoDB. Entrez la commande suivante dans le terminal de ligne de commande :

sudo service mongodb start
Copier après la connexion

Après avoir démarré avec succès le service MongoDB, nous pouvons exploiter les données via MongoDB Shell.

1. Créez une base de données

Entrez la commande suivante dans le terminal de ligne de commande pour vous connecter à la base de données MongoDB :

mongo
Copier après la connexion

Une fois la connexion établie réussi, nous pouvons utiliser La commande suivante crée une nouvelle base de données :

use scrapytest
Copier après la connexion

Le scrapytest ici est le nom de notre base de données personnalisée.

2. Créer une collection

Dans MongoDB, nous utilisons des collections pour stocker des données. Nous pouvons utiliser la commande suivante pour créer une nouvelle collection :

db.createCollection("example")
Copier après la connexion

L'exemple ici est le nom de notre collection personnalisée.

3. Insérer des données

En Python, on peut utiliser la bibliothèque pymongo pour accéder à la base de données MongoDB. Nous pouvons utiliser la commande suivante pour installer la bibliothèque pymongo :

pip install pymongo
Copier après la connexion

Une fois l'installation terminée, nous pouvons utiliser le code suivant pour insérer des données :

import pymongo

client = pymongo.MongoClient(host="localhost", port=27017)
db = client["scrapytest"]
collection = db["example"]
data = {"title": "example", "content": "Hello World!"}
collection.insert_one(data)
Copier après la connexion

Les données ici sont les données que nous voulons insérer, Contient deux champs : titre et contenu.

4. Interroger des données

Nous pouvons utiliser le code suivant pour interroger des données :

import pymongo

client = pymongo.MongoClient(host="localhost", port=27017)
db = client["scrapytest"]
collection = db["example"]
result = collection.find_one({"title": "example"})
print(result["content"])
Copier après la connexion

La condition de requête ici est "titre": "exemple ", Indique une requête de données dont le champ de titre est égal à l'exemple. Les résultats de la requête incluront l'intégralité du document de données et nous pourrons obtenir la valeur du champ de contenu via result["content"].

3. Utilisation combinée de Scrapy et de MongoDB

Dans les applications de robots réelles, nous devons souvent enregistrer les données analysées dans la base de données et chronométrer l'enregistrement et l'analyse des séquences. . La combinaison de Scrapy et MongoDB peut bien répondre à cette exigence.

Dans Scrapy, nous pouvons utiliser des pipelines pour traiter les données analysées et enregistrer les données dans MongoDB.

1. Créer un pipeline

Nous pouvons créer un fichier nommé pipelines.py dans le répertoire racine du projet Scrapy et définir notre pipeline dans ce fichier. Dans cet exemple, nous enregistrons les données analysées dans MongoDB et ajoutons un champ d'horodatage pour représenter l'horodatage de l'enregistrement de données. Le code est le suivant :

import pymongo
from datetime import datetime

class ScrapyExamplePipeline:
    def open_spider(self, spider):
        self.client = pymongo.MongoClient("localhost", 27017)
        self.db = self.client["scrapytest"]

    def close_spider(self, spider):
        self.client.close()

    def process_item(self, item, spider):
        collection = self.db[spider.name]
        item["timestamp"] = datetime.now()
        collection.insert_one(dict(item))
        return item
Copier après la connexion

Ce pipeline sera appelé à chaque fois que le robot explore un élément. Nous convertissons les éléments analysés en dictionnaire, ajoutons un champ d'horodatage, puis enregistrons l'intégralité du dictionnaire dans MongoDB.

2. Configurer le pipeline

Trouvez le fichier settings.py dans le répertoire racine du projet Scrapy et définissez ITEM_PIPELINES sur le pipeline que nous venons de définir :

ITEM_PIPELINES = {
   "scrapy_example.pipelines.ScrapyExamplePipeline": 300,
}
Copier après la connexion
# 🎜 🎜#Le 300 ici est la priorité du pipeline, indiquant l'ordre d'exécution du pipeline dans tous les pipelines.

3. Modifiez le code du robot

Modifiez le code du robot que nous venons d'écrire et transmettez l'élément au pipeline.

import scrapy

class ExampleSpider(scrapy.Spider):
    name = "example"
    start_urls = ["https://www.example.com/"]

    def parse(self, response):
        for text in response.css("p::text"):
            yield {"text": text.extract()}
Copier après la connexion

Ici, nous explorons simplement le contenu du texte sur la page Web et enregistrons le contenu dans un champ de texte. Scrapy transmettra cet élément au pipeline défini pour traitement.

4. Interroger les données

Maintenant, nous pouvons enregistrer les données analysées dans MongoDB. Nous devons également mettre en œuvre l’enregistrement et l’analyse de séries chronologiques. Nous pouvons le faire en utilisant les opérations de requête et d'agrégation de MongoDB.

Trouver des données dans une période de temps spécifiée :

import pymongo
from datetime import datetime

client = pymongo.MongoClient("localhost", 27017)
db = client["scrapytest"]
collection = db["example"]
start_time = datetime(2021, 1, 1)
end_time = datetime(2021, 12, 31)
result = collection.find({"timestamp": {"$gte": start_time, "$lte": end_time}})
for item in result:
    print(item["text"])
Copier après la connexion

Ici, nous trouvons toutes les données pour 2021.

统计每个小时内的记录数:

import pymongo

client = pymongo.MongoClient("localhost", 27017)
db = client["scrapytest"]
collection = db["example"]
pipeline = [
    {"$group": {"_id": {"$hour": "$timestamp"}, "count": {"$sum": 1}}},
    {"$sort": {"_id": 1}},
]
result = collection.aggregate(pipeline)
for item in result:
    print(f"{item['_id']}: {item['count']}")
Copier après la connexion

这里我们使用MongoDB的聚合操作来统计每个小时内的记录数。

通过Scrapy和MongoDB的结合使用,我们可以方便地实现时间序列的数据记录和分析。这种方案的优点是具有较强的扩展性和灵活性,可以适用于各种不同的应用场景。不过,由于本方案的实现可能涉及到一些较为复杂的数据结构和算法,所以在实际应用中需要进行一定程度的优化和调整。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle version est généralement utilisée pour mongodb ? Quelle version est généralement utilisée pour mongodb ? Apr 07, 2024 pm 05:48 PM

Il est recommandé d'utiliser la dernière version de MongoDB (actuellement 5.0) car elle fournit les dernières fonctionnalités et améliorations. Lors de la sélection d'une version, vous devez prendre en compte les exigences fonctionnelles, la compatibilité, la stabilité et le support de la communauté. Par exemple, la dernière version comporte des fonctionnalités telles que les transactions et l'optimisation du pipeline d'agrégation. Assurez-vous que la version est compatible avec l'application. Pour les environnements de production, choisissez la version avec support à long terme. La dernière version bénéficie d'un support communautaire plus actif.

Régression quantile pour la prévision probabiliste de séries chronologiques Régression quantile pour la prévision probabiliste de séries chronologiques May 07, 2024 pm 05:04 PM

Ne changez pas la signification du contenu original, affinez le contenu, réécrivez le contenu et ne continuez pas. "La régression quantile répond à ce besoin, en fournissant des intervalles de prédiction avec des chances quantifiées. Il s'agit d'une technique statistique utilisée pour modéliser la relation entre une variable prédictive et une variable de réponse, en particulier lorsque la distribution conditionnelle de la variable de réponse présente un intérêt quand. Contrairement à la régression traditionnelle " Figure (A) : Régression quantile La régression quantile est une estimation. Une méthode de modélisation de la relation linéaire entre un ensemble de régresseurs X et les quantiles. des variables expliquées Y. Le modèle de régression existant est en fait une méthode pour étudier la relation entre la variable expliquée et la variable explicative. Ils se concentrent sur la relation entre variables explicatives et variables expliquées.

La différence entre nodejs et vuejs La différence entre nodejs et vuejs Apr 21, 2024 am 04:17 AM

Node.js est un environnement d'exécution JavaScript côté serveur, tandis que Vue.js est un framework JavaScript côté client permettant de créer des interfaces utilisateur interactives. Node.js est utilisé pour le développement côté serveur, comme le développement d'API de service back-end et le traitement des données, tandis que Vue.js est utilisé pour le développement côté client, comme les applications monopage et les interfaces utilisateur réactives.

Nouveaux travaux sur la prédiction de séries chronologiques + grand modèle NLP : générer automatiquement des invites implicites pour la prédiction de séries chronologiques Nouveaux travaux sur la prédiction de séries chronologiques + grand modèle NLP : générer automatiquement des invites implicites pour la prédiction de séries chronologiques Mar 18, 2024 am 09:20 AM

Aujourd'hui, j'aimerais partager un travail de recherche récent de l'Université du Connecticut qui propose une méthode pour aligner les données de séries chronologiques avec de grands modèles de traitement du langage naturel (NLP) sur l'espace latent afin d'améliorer les performances de prévision des séries chronologiques. La clé de cette méthode consiste à utiliser des indices spatiaux latents (invites) pour améliorer la précision des prévisions de séries chronologiques. Titre de l'article : S2IP-LLM : SemanticSpaceInformedPromptLearningwithLLMforTimeSeriesForecasting Adresse de téléchargement : https://arxiv.org/pdf/2403.05798v1.pdf 1. Modèle de fond de problème important

Où est la base de données créée par mongodb ? Où est la base de données créée par mongodb ? Apr 07, 2024 pm 05:39 PM

Les données de la base de données MongoDB sont stockées dans le répertoire de données spécifié, qui peut être situé dans le système de fichiers local, le système de fichiers réseau ou le stockage cloud. L'emplacement spécifique est le suivant : Système de fichiers local : Le chemin par défaut est Linux/macOS : /data/db, Windows : C:\data\db. Système de fichiers réseau : le chemin dépend du système de fichiers. Stockage cloud : le chemin est déterminé par le fournisseur de stockage cloud.

Quels sont les avantages de la base de données MongoDB Quels sont les avantages de la base de données MongoDB Apr 07, 2024 pm 05:21 PM

La base de données MongoDB est connue pour sa flexibilité, son évolutivité et ses hautes performances. Ses avantages incluent : un modèle de données documentaires qui permet de stocker les données de manière flexible et non structurée. Évolutivité horizontale vers plusieurs serveurs via le partitionnement. Flexibilité des requêtes, prenant en charge les requêtes complexes et les opérations d’agrégation. La réplication des données et la tolérance aux pannes garantissent la redondance des données et la haute disponibilité. Prise en charge de JSON pour une intégration facile avec les applications frontales. Hautes performances pour une réponse rapide même lors du traitement de grandes quantités de données. Open source, personnalisable et gratuit à utiliser.

Que signifie MongoDB ? Que signifie MongoDB ? Apr 07, 2024 pm 05:57 PM

MongoDB est un système de base de données distribuée orienté document utilisé pour stocker et gérer de grandes quantités de données structurées et non structurées. Ses concepts de base incluent le stockage et la distribution de documents, et ses principales fonctionnalités incluent le schéma dynamique, l'indexation, l'agrégation, la réduction de mappage et la réplication. Il est largement utilisé dans les systèmes de gestion de contenu, les plateformes de commerce électronique, les sites Web de réseaux sociaux, les applications IoT et le développement d'applications mobiles.

Comment ouvrir MongoDB Comment ouvrir MongoDB Apr 07, 2024 pm 06:15 PM

Sous Linux/macOS : Créez le répertoire de données et démarrez le service "mongod". Sous Windows : créez le répertoire de données et démarrez le service MongoDB à partir de Service Manager. Dans Docker : Exécutez la commande "docker run". Sur d'autres plateformes : Veuillez consulter la documentation MongoDB. Méthode de vérification : exécutez la commande "mongo" pour vous connecter et afficher la version du serveur.

See all articles