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.
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.
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
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