Auparavant, dans le but d'étudier, j'ai essayé de créer une API de recherche de code postal avec AWS lambda + API Gateway, mais les données de code postal sont «Scrapy». Je l'ai récupéré et téléchargé sur S3
pour utilisation.
Cette fois, j'écrirai sur les points auxquels j'étais accro avant de déployer le projet sur Scrapy Cloud
et d'exécuter le calendrier régulier.
Pour «Scrapy Cloud», j'ai fait référence à l'URL suivante.
La figure ci-dessous montre le flux de travail global.
De la création d'un projet «scrapy» à son déploiement sur «scrapinghub», le déroulement est le suivant.
--Créer un projet scrapy
$ scrapy startproject {your project}
--Mise en œuvre localement$ scrapy runspider {spider_file.py}
--Déployer sur le «hub de grattage»$ shub deploy
scraping hub
Cela fonctionnait bien jusqu'à ce que je le déploie sur scrapinghub
, mais il y avait quelques points addictifs lorsque j'ai exécuté le travail sur scrapinghub
.
Boto est utilisé pour les opérations AWS, mais soyez prudent car Scrapy Cloud
est pré-installé boto
(v2). est.
Si vous spécifiez requirements_file
dans scrapinghub.yml
, vous pouvez installer les bibliothèques requises, vous pouvez donc utiliser boto3.
Si requirements_file
est traité normalement au moment du déploiement, vous pouvez vérifier la bibliothèque supplémentaire installée dans requirements
de Code & Deploys
.
Pour les informations d'identification AWS, accédez à Paramètres Spider
-> Paramètres Spider
et enregistrez les paramètres comme indiqué ci-dessous.
Accédez à partir du code comme suit.
from scrapy.conf import settings
s3 = boto.connect_s3(settings['AWS_ACCESS_KEY_ID'], settings['AWS_SECRET_ACCESS_KEY'])
Si vous voulez vérifier localement, écrivez la valeur du paramètre dans settings.py
.
Cependant, si les informations d'identification existent dans ~ / .aws / credentials
, il n'est pas nécessaire de décrire la valeur du paramètre.
settings.py
AWS_ACCESS_KEY_ID = 'xxxxxx'
AWS_SECRET_ACCESS_KEY = 'xxxxxx'
S3
est extrêmement lent, le grattage prend environ 20 minutes
C'est à des fins d'étude, donc vous n'avez pas à vous en soucier, mais je veux l'améliorer d'une manière ou d'une autre.S3
terminé.Au départ, j'essayais d'exécuter le projet Scrapy sur ʻAWS Lambdaainsi que sur l'API. Cependant, j'ai dû compresser le code source dans un fichier ZIP comprenant la bibliothèque et le télécharger, et par conséquent, cela ne fonctionnait pas bien, alors j'ai essayé de le déployer sur
Scrapy Cloud` avec obéissance.
J'ai également été invité au Bot Crawler Advent Calendar 2016, donc même là-bas, j'ai créé des robots en utilisant Scrapy Cloud
et j'ai écrit un article. Je vais essayer de.
À bientôt.
Recommended Posts