Zuvor hatte ich zum Studium Ich habe versucht, eine Postleitzahlensuch-API mit AWS Lambda + API Gateway zu erstellen, aber die Postleitzahlendaten lauten "Scrapy". Ich habe es abgekratzt und zur Verwendung auf "S3" hochgeladen. Dieses Mal werde ich über die Punkte schreiben, von denen ich abhängig war, bevor ich das Projekt in "Scrapy Cloud" bereitstellte und den regulären Zeitplan ausführte.
Für "Scrapy Cloud" habe ich auf die folgende URL verwiesen.
Die folgende Abbildung zeigt den gesamten Workflow.
Von der Erstellung eines "Scrapy" -Projekts bis zur Bereitstellung für "Scrapinghub" ist der Ablauf wie folgt.
--Erstellen Sie ein Scrapy-Projekt
$ scrapy startproject {your project}
$ scrapy runspider {spider_file.py}
$ shub deploy
Es hat gut funktioniert, bis ich es für "Scrapinghub" bereitgestellt habe, aber es gab einige süchtig machende Punkte, als ich den Job für "Scrapinghub" ausgeführt habe.
Boto wird zum Betreiben von AWS verwendet. Seien Sie jedoch vorsichtig, da "Scrapy Cloud" "Boto" (v2) vorinstalliert hat. ist.
Wenn Sie in "Scrapinghub.yml" "Requirements_file" angeben, können Sie die erforderlichen Bibliotheken installieren und boto3 verwenden.
Wenn "Anforderungsdatei" zum Zeitpunkt der Bereitstellung normal verarbeitet wird, können Sie die zusätzlich installierte Bibliothek in "Anforderungen" von "Code & Bereitstellungen" überprüfen.
Für AWS-Anmeldeinformationen gehen Sie zu Spider Settings
-> Spider Settigns
und registrieren Sie die Einstellungswerte wie unten gezeigt.
Zugriff über den Code wie folgt.
from scrapy.conf import settings
s3 = boto.connect_s3(settings['AWS_ACCESS_KEY_ID'], settings['AWS_SECRET_ACCESS_KEY'])
Wenn Sie lokal prüfen möchten, schreiben Sie den Einstellungswert in settings.py
.
Wenn die Anmeldeinformationen jedoch in "~ / .aws / credentials" vorhanden sind, muss der Einstellungswert nicht beschrieben werden.
settings.py
AWS_ACCESS_KEY_ID = 'xxxxxx'
AWS_SECRET_ACCESS_KEY = 'xxxxxx'
--Das Hochladen von Dateien in "S3" ist extrem langsam, das Scraping dauert ungefähr 20 Minuten ――Es dient Studienzwecken, sodass Sie sich keine Sorgen machen müssen, aber ich möchte es irgendwie verbessern.
Anfangs habe ich versucht, das Scrapy-Projekt sowohl auf AWS Lambda als auch auf der API auszuführen. Ich musste den Quellcode jedoch in eine ZIP-Datei einschließlich der Bibliothek komprimieren und hochladen. Infolgedessen funktionierte er nicht gut und versuchte, ihn gehorsam in "Scrapy Cloud" bereitzustellen.
Ich wurde auch zu Bot Crawler Adventskalender 2016 eingeladen, also habe ich auch dort einige Bots mit "Scrapy Cloud" erstellt und einen Artikel geschrieben. Ich werde versuchen.
Bis bald.
Recommended Posts