Web scraping pour les débutants en Python (4) -1

Cette fois, nous visons à mettre le programme de scraping de précédent sur le cloud et à l'exécuter automatiquement, mais d'abord, mettre le PGM de test sur le cloud et le faire fonctionner normalement. Je vais l'amener à ce point.

Feuille de route pour l'apprentissage du web scraping en Python

(1) Réussir à gratter le contenu cible localement pour le moment. (2) Liez les résultats de la récupération locale à une feuille de calcul Google. (3) cron est automatiquement exécuté localement. (4) Défiez l'exécution automatique gratuite sur le serveur cloud. (Google Compute Engine) (4) -1 Placez la PGM de test sur le cloud et exécutez-la normalement sur CloudShell ← Maintenant ici </ font> (4) -2 Ajoutez la PGM de scraping au référentiel et exécutez-la normalement sur CloudShell. (4) -3 Créez une instance de VM de ComputeEngine et exécutez le scraping automatiquement. (5) Défiez l'exécution automatique gratuite sans serveur sur le cloud. (Peut-être Cloud Functions + Cloud Scheduler)

Étapes pour transférer des ressources vers GCP

(1) Créez un référentiel git dans GCP à l'aide de git (compte GitHub requis) (2) Créer un clone localement (3) Ajoutez le programme que vous souhaitez télécharger sur GCP dans l'index du référentiel local et validez (4) Push to master sur GCP

(1) Créer un référentiel git dans GCP à l'aide de git

Si vous n'avez pas installé le SDK Gcloud, installez-le. Assurez-vous que la commande gcloudl est définie pour le projet souhaité. (Pour un nouveau projet, définissez le projet avec la commande gcloud init.)

zsh


16:03:04 [~] % gcloud config list
[core]
account = [email protected]
disable_usage_reporting = False
project = my-hoge-app

Your active configuration is: [default]

Créez un référentiel dans Cloud Source Repositories.

zsh


16:41:59 [~] % 
16:42:00 [~] % gcloud source repos create gce-cron-test
Created [gce-cron-test].
WARNING: You may be billed for this repository. See https://cloud.google.com/source-repositories/docs/pricing for details.

Un référentiel vide sera créé dans le projet cible comme ceci. スクリーンショット 2020-09-24 21.47.24.png

(2) Créer un clone localement

Créez un clone du référentiel que vous avez créé dans Cloud Source Repositories localement.

zsh


16:44:10 [~] % 
16:44:10 [~] % gcloud source repos clone gce-cron-test
Cloning into '/Users/hoge/gce-cron-test'...
warning: You appear to have cloned an empty repository.
Project [my-hoge-app] repository [gce-cron-test] was cloned to [/Users/hoge/gce-cron-test].

État dans lequel le fichier py est stocké dans le référentiel local créé. (Vous pouvez voir qu'il s'agit d'un dépôt git.)

zsh


16:46:15 [~] % 
16:46:15 [~] % cd gce-cron-test
16:46:44 [~/gce-cron-test] % ls -la
total 8
drwxr-xr-x   4 hoge  staff   128  9 23 16:45 .
drwxr-xr-x+ 45 hoge  staff  1440  9 23 16:45 ..
drwxr-xr-x   9 hoge  staff   288  9 23 16:45 .git
-rw-r--r--   1 hoge  staff   146  9 21 15:29 cron-test.py

(3) Ajoutez le programme que vous souhaitez télécharger sur GCP dans l'index du référentiel local et validez

Ajoutez le fichier à l'index avec la commande git add Validez dans le référentiel local avec la commande git commit.

zsh


16:47:21 [~/gce-cron-test] % 
16:47:21 [~/gce-cron-test] % git add .
16:48:03 [~/gce-cron-test] % 
16:48:04 [~/gce-cron-test] % git commit -m "Add cron-test to Cloud Source Repositories"
[master (root-commit) 938ea70] Add cron-test to Cloud Source Repositories
 1 file changed, 5 insertions(+)
 create mode 100644 cron-test.py

(4) Push to master sur GCP

Push to master (référentiels Cloud Source).

zsh


16:50:15 [~/gce-cron-test] % 
16:50:15 [~/gce-cron-test] % git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 349 bytes | 116.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://source.developers.google.com/p/my-hoge-app/r/gce-cron-test
 * [new branch]      master -> master

Vous pouvez voir que vous avez pu pousser vers le maître avec le message de validation. スクリーンショット 2020-09-24 21.30.53.png

Confirmation de l'opération avec Cloud Shell

Testons-le sur Cloud Shell sur GCP.

Sélectionnez le projet souhaité et lancez Cloud Shell. スクリーンショット 2020-09-25 16.53.01.png

Le terminal démarre. スクリーンショット 2020-09-25 16.53.41.png

Clonez le dépôt git à partir de master comme vous le feriez localement.

bash


cloudshell:09/25/20 02:59:00 ~ $ gcloud source repos clone gce-cron-test
Cloning into '/home/hoge/gce-cron-test'...
remote: Total 3 (delta 0), reused 3 (delta 0)
Unpacking objects: 100% (3/3), done.
Project [my-xxx-app] repository [gce-cron-test] was cloned to [/home/hoge/gce-cron-test].

Il a été cloné.

bash


cloudshell:09/25/20 03:01:49 ~ $ cd gce-cron-test
cloudshell:09/25/20 03:02:09 ~/gce-cron-test $ ls -la
total 20
drwxr-xr-x  3 hoge hoge 4096 Sep 23 10:59 .
drwxr-xr-x 13 hoge rvm  4096 Sep 23 11:18 ..
-rw-r--r--  1 hoge hoge  146 Sep 23 09:03 cron-test.py
drwxr-xr-x  8 hoge hoge 4096 Sep 23 09:03 .git

Vérifiez le chemin et la version de python. 3.8.5 est pré-installé dans cet environnement avec pyenv.

bash


cloudshell:09/25/20 03:02:21 ~/gce-cron-test $ which python
/home/hoge/.pyenv/shims/python
cloudshell:09/25/20 03:02:42 ~/gce-cron-test $ python -V
Python 3.8.5

Comme indiqué ci-dessous, cela fonctionne normalement sur CloudShell.

bash


cloudshell:09/25/20 03:02:50 ~/gce-cron-test $ python cron-test.py
2020/09/25 03:03:11 fonctionne Cron!
cloudshell:09/25/20 03:03:12 ~/gce-cron-test $

Cependant, crontab n'a pas fonctionné. L'environnement Cloud Shell semble être un environnement qui n'accepte que les commandes interactives interactives. .. .. La prochaine fois, j'ajouterai la PGM de scraping au référentiel et l'exécuterai normalement sur CloudShell.

Bonus: à propos de Cloud Shell

CloudShell est un environnement IDE qui peut être utilisé sur le cloud de Google, une sorte d'environnement de VM virtuelle avec un disque de 5 Go et un éditeur de code basé sur Theia peut également être utilisé.

Vous pouvez également éditer des fichiers cachés avec un éditeur

bash


$ cloudshell edit $HOME/.bashrc

Vous pouvez également le télécharger.

bash


$ cloudshell download $HOME/.bashrc

[CloudShell] https://cloud.google.com/shell/?hl=ja

Recommended Posts

Web scraping pour les débutants en Python (1)
Web scraping pour les débutants en Python (4) -1
Web scraping pour les débutants en Python (1) Version améliorée
Scraping Web pour débutants avec Python (4) --2 Scraping sur Cloud Shell
[Pour les débutants] Essayez le web scraping avec Python
Grattage WEB avec Python (pour mémo personnel)
Manuel python pour les débutants
OpenCV pour les débutants en Python
Web scraping avec python + JupyterLab
Flux d'apprentissage pour les débutants en Python
Python #function 2 pour les super débutants
Web scraping avec Selenium (Python)
Grammaire de base Python pour les débutants
Pandas 100 coups pour les débutants en Python
Python #function 1 pour les super débutants
[Python + Selenium] Conseils pour le grattage
Web scraping débutant avec python
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 4 Utiliser l'interface graphique
Exercices Python pour les débutants # 2 [pour instruction / instruction while]
Matériel pédagogique Web pour apprendre Python
Python pour les super débutants Super débutants Python # dictionnaire type 1
Web scraping avec Python Première étape
J'ai essayé webScraping avec python.
Qu'est-ce que le grattage? [Résumé pour les débutants]
Ensuite, utilisez Python (Flask) pour Heroku!
Python #index pour les super débutants, tranches
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>
Fonction Python #len pour les super débutants
[Pour les débutants] Web scraping avec Python "Accédez à l'URL de la page pour obtenir le contenu"
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image par eux-mêmes
Python #Hello World pour les super débutants
raclage Web
Python pour les super débutants Super débutants Python # dictionnaire type 2
INSÉRER dans MySQL avec Python [Pour les débutants]
[Python] Compte-rendu de la réunion d'étude pour les débutants (7/15)
Utiliser DeepL avec python (pour la traduction d'articles)
[Débutant] Scrapage Web Python facile à comprendre à l'aide de Google Colaboratory
Premiers pas avec Python Web Scraping Practice
[Note personnelle] Scraping de pages Web en python3
[Python] Organisation de l'utilisation des instructions
Site de courses de chevaux Web scraping avec Python
Premiers pas avec Python Web Scraping Practice
[Python] Conception d'applications Web pour l'apprentissage automatique
[Python] Lire des images avec OpenCV (pour les débutants)
Comment utiliser "deque" pour les données Python
Création WebApi avec Python (création CRUD) Pour les débutants
Utilisez pathlib dans Maya (Python2.7) en préparation du prochain Python3.7
Pratiquer le web scraping avec Python et Selenium
Scraping Web facile avec Python et Ruby
Ensemble d'entrées standard Atcoder pour les débutants (python)
Préparation au grattage au python [Saveur chocolat]
Un manuel pour les débutants réalisé par des débutants Python
30/10/2016 else pour Python3> pour:
python [pour moi]
Mémo de raclage Python
Scraping Python get_ranker_categories