Dies ist eine Methode zum Speichern der von Scrapy gecrawlten Informationen im Google Data Store. Zu dieser Zeit gab es einige Fallstricke, deshalb habe ich sie zusammengefasst.
gcloud bietet einen Auth-Befehl zur Authentifizierung. https://cloud.google.com/sdk/gcloud/reference/auth/ Sie können diesen Befehl jedoch nicht in einer Scrapy Cloud ausführen.
Authentifizieren Sie sich daher mit dem Dienstkontoschlüssel json. Sie können die JSON-Datei herunterladen, indem Sie sie auf dem folgenden Bildschirm einstellen.
Wenn Sie so schreiben, können Sie den Crawler lokal betreiben.
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
)
Bereitstellungsbefehle
$ python setup.py bdist_egg
$ shub deploy --egg dist/project-1.0-py2.7.egg
Recommended Posts