[PYTHON] Enregistrez le résultat de l'exploration avec Scrapy dans Google Data Store

Il s'agit d'une méthode pour enregistrer les informations explorées par Scrapy dans le Google Data Store. À l'époque, il y avait des écueils, alors je les ai résumés.

Chose que tu veux faire

[Problème point 1] Autour de l'autorité de Google Cloud Platform

gcloud fournit une commande auth pour l'authentification. https://cloud.google.com/sdk/gcloud/reference/auth/ Cependant, vous ne pouvez pas exécuter cette commande dans le cloud scrapy.

Par conséquent, authentifiez-vous à l'aide de la clé de compte de service json. Vous pouvez télécharger le fichier json en le définissant sur l'écran ci-dessous.

Screenshot from 2017-03-14 00-50-21.png

[Trouble point 2] Spécifiez le chemin json avec la variable d'environnement

En écrivant comme ceci, vous pouvez faire fonctionner le robot d'exploration localement.

pipeline.py


from google.cloud import datastore
import os
import time
from threading import Lock


class HogePipeline(object):
    def __init__(self):
        os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = os.path.join(os.path.dirname(__file__), "./hogehogehoge.json")
        self.g_client = datastore.Client('hoge-project')

    def process_item(self, item, spider):
        # put 
        return item

[Point de problème 3] Regroupez et déployez le fichier json

MANIFEST.ini


include path/to/hogehogehoge.json

setup.py



from setuptools import setup, find_packages

setup(
    name         = 'project',
    version      = '1.0',
    packages     = find_packages(),
    entry_points = {'scrapy': ['settings = hoge.settings']},
    install_requires = [],
    include_package_data = True
)

Commandes de déploiement

$ python setup.py bdist_egg
$ shub deploy --egg dist/project-1.0-py2.7.egg

Recommended Posts

Enregistrez le résultat de l'exploration avec Scrapy dans Google Data Store
J'ai essayé de sauvegarder les données avec discorde
Enregistrer en japonais dans StringProperty dans le magasin de données Google App Engine
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Essayez d'imaginer les données d'élévation du National Land Research Institute avec Python
Convertissez les données avec la forme (nombre de données, 1) en (nombre de données,) avec numpy.
Enregistrez les données pour flasher avec la carte Nucleo STM32
Enregistrer l'objet dans un fichier avec pickle
Enregistrez les résultats de la recherche sur Twitter au format CSV.
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Ajoutez des informations au bas de la figure avec Matplotlib
Essayez de créer une table d'enregistrement de bataille avec matplotlib à partir des données de "Schedule-kun"
Essayez d'obtenir le contenu de Word avec Golang
J'ai essayé de visualiser les données de course du jeu de course (Assetto Corsa) avec Plotly
Je voulais juste extraire les données de la date et de l'heure souhaitées avec Django
J'ai essayé d'afficher les données du groupe de points DB de la préfecture de Shizuoka avec Vue + Leaflet
[Introduction au modèle SIR] Prédire l'heure de fin de chaque pays avec l'ajustement des données COVID-19 ♬
J'ai essayé d'analyser les données du tournoi de football de la Coupe du monde de football en Russie avec l'action de football
Renvoyez les données d'image avec Flask of Python et dessinez-les dans l'élément canvas de HTML
Comment insérer un processus spécifique au début et à la fin de l'araignée avec la tremblante
J'ai essayé de trouver l'entropie de l'image avec python
Essayez de gratter les données COVID-19 Tokyo avec Python
Sauvegardez la sortie de GAN une par une ~ Avec l'implémentation de GAN par PyTorch ~
Un diagramme de réseau a été créé avec les données du COVID-19.
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
Visualisez les résultats des arbres de décision réalisés avec Python scikit-learn
[Part.2] Exploration avec Python! Cliquez sur la page Web pour vous déplacer!
Paramètres pour entrer et déboguer le contenu de la bibliothèque avec VS Code
Analyse des données basée sur les résultats des élections du gouverneur de Tokyo (2020)
Comment résumer les résultats de FreeSurfer ~ aparc, aseg, wmparc ~
L'histoire du rubyiste aux prises avec Python :: Dict data with pycall
[Homologie] Comptez le nombre de trous dans les données avec Python
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
L'histoire de la copie de données de S3 vers TeamDrive de Google
Enregistrer des images sur le Web sur un lecteur avec Python (Colab)
Django a changé pour enregistrer beaucoup de données à la fois
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Récupérez la source de la page à charger indéfiniment avec python.
J'ai envoyé les données de Raspberry Pi à GCP (gratuit)
Réutiliser les résultats du clustering
Utilisez Django pour enregistrer les données de tweet
Comment extraire des fonctionnalités de données de séries chronologiques avec les bases de PySpark
L'histoire de ne pas pouvoir exécuter pygame avec pycharm
Familiarisez-vous avec (voulez être) autour du pipeline de spaCy
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
[Apprentissage automatique] Vérifiez les performances du classificateur à l'aide de données de caractères manuscrites
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Essayez de résoudre le problème N Queen avec SA de PyQUBO
Je veux sortir le début du mois prochain avec Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
Analyse de correspondance des phrases avec l'API COTOHA et sauvegarde dans un fichier
Considérez la vitesse de traitement pour déplacer le tampon d'image avec numpy.ndarray
Résolution du labyrinthe avec Python-Supplément au chapitre 6 de la référence rapide de l'algorithme-
Comment surveiller l'état d'exécution de sqlldr avec la commande pv
J'ai essayé d'agrandir la taille du volume logique avec LVM
La meilleure façon d'utiliser MeCab et CaboCha avec Google Colab