Scraping Web pour débutants avec Python (4) --2 Scraping sur Cloud Shell

Maintenant, précédent j'ajouterai la PGM de scraping au référentiel Cloud Source Repositroies créé.

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. (4) -2 Ajoutez la PGM de scraping au référentiel et exécutez-la normalement sur CloudShell. ← Maintenant ici </ font> (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)

Cette procédure

[1] Ajout de la PGM de scraping au référentiel local [2] Push to master Cloud Source Repositories [3] Passer du maître au clonage sur CloudShell [4] Installation en masse des modules requis à l'aide de requirements.txt [5] Effectuer un scraping sur CloudShell

[1] Ajout de la PGM de scraping au référentiel local

Ajoutez le fichier à votre référentiel local.

Mac zsh


11:28:14 [~] % cd gce-cron-test
11:28:25 [~/gce-cron-test] % ls -la
total 40
drwxr-xr-x   7 hoge  staff   224  9 26 11:27 .
drwxr-xr-x+ 45 hoge  staff  1440  9 23 16:45 ..
-rw-r--r--@  1 hoge  staff  6148  9 26 11:26 .DS_Store
drwxr-xr-x  13 hoge  staff   416  9 23 16:49 .git
-rw-r--r--   1 hoge  staff   146  9 21 15:29 cron-test.py
-rw-r--r--@  1 hoge  staff  2352  9 16 17:54 my-web-hoge-app-hogehoge.json
-rw-r--r--   1 hoge  staff  2763  9 17 13:22 requests-test2.py

Assurez-vous que des fichiers doivent être validés, puis ajoutez et validez.

Mac zsh


11:28:28 [~/gce-cron-test] % git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .DS_Store
        my-web-hoge-app-hogehoge.json
        requests-test2.py

nothing added to commit but untracked files present (use "git add" to track)
11:28:34 [~/gce-cron-test] % 
11:28:52 [~/gce-cron-test] % 
11:28:53 [~/gce-cron-test] % git add .
11:28:58 [~/gce-cron-test] % 
11:29:38 [~/gce-cron-test] % 
11:29:38 [~/gce-cron-test] % git commit -m "Add requests-test to Cloud Source Repositories" 
[master 44abc4d] Add requests-test to Cloud Source Repositories
 3 files changed, 73 insertions(+)
 create mode 100644 .DS_Store
 create mode 100644 my-web-hoge-app-hogehoge.json
 create mode 100644 requests-test2.py

[2] Push to master des référentiels Cloud Source

Faites un effort pour maîtriser.

Mac zsh


11:30:13 [~/gce-cron-test] % 
11:30:23 [~/gce-cron-test] % 
11:30:23 [~/gce-cron-test] % git push origin master
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 3.48 KiB | 891.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To https://source.developers.google.com/p/my-gce-app/r/gce-cron-test
   938ea70..44abc4d  master -> master
11:31:37 [~/gce-cron-test] % 

[3] Passer du maître au clonage sur CloudShell

Accédez au référentiel précédemment cloné dans Cloud Shell.

cloudshell


cloudshell:09/26/20 02:54:33 ~/gce-cron-test $ git pull origin master

Confirmez qu'il a été ajouté au référentiel CloudShell. (Plus tard, j'ai ajouté le fichier requirements.txt.)

cloudshell


cloudshell:09/26/20 02:55:06 ~/gce-cron-test $
cloudshell:09/26/20 02:55:06 ~/gce-cron-test $ ls -la
total 40
drwxr-xr-x  3 hoge hoge 4096 Sep 26 02:52 .
drwxr-xr-x 13 hoge rvm        4096 Sep 23 11:18 ..
-rw-r--r--  1 hoge hoge   80 Sep 23 11:09 cron.log
-rw-r--r--  1 hoge hoge  146 Sep 23 09:03 cron-test.py
-rw-r--r--  1 hoge hoge 6148 Sep 26 02:47 .DS_Store
drwxr-xr-x  8 hoge hoge 4096 Sep 26 02:52 .git
-rw-r--r--  1 hoge hoge 2352 Sep 26 02:47 my-web-scraping-app-hogehoge.json
-rw-r--r--  1 hoge hoge 2763 Sep 26 02:47 requests-test2.py
-rw-r--r--  1 hoge hoge  334 Sep 26 02:52 requirements.txt

[4] Installation en masse des modules requis à l'aide de requirements.txt

Installez les modules requis en bloc à l'aide de requirements.txt.

cloudshell


cloudshell:09/26/20 02:55:10 ~/gce-cron-test $ pip install -r requirements.txt

Consultez la liste des pips. J'ai mis tous les modules nécessaires dans requirements.txt avec "pip freeze> requirements.txt" localement sur Mac, donc bien sûr je les ai correctement.

cloudshell


cloudshell:09/26/20 02:55:41 ~/gce-cron-test $ pip list
Package              Version
-------------------- ---------
appdirs              1.4.4
beautifulsoup4       4.9.1
cachetools           4.1.1
certifi              2020.6.20
chardet              3.0.4
distlib              0.3.1
filelock             3.0.12
google-auth          1.21.0
google-auth-oauthlib 0.4.1
gspread              3.6.0
httplib2             0.18.1
idna                 2.10
oauth2client         4.1.3
oauthlib             3.1.0
pip                  20.1.1
pyasn1               0.4.8
pyasn1-modules       0.2.8
requests             2.24.0
requests-oauthlib    1.3.0
rsa                  4.6
setuptools           47.1.0
six                  1.15.0
soupsieve            2.0.1
urllib3              1.25.10
virtualenv           20.0.31
WARNING: You are using pip version 20.1.1; however, version 20.2.3 is available.
You should consider upgrading via the '/home/hoge/.pyenv/versions/3.8.5/bin/python3.8 -m pip install --upgrade pip' command.

[5] Effectuer un grattage

Essayez d'exécuter la PGM de scraping "requests-test2.py".

cloudshell


cloudshell:09/26/20 02:55:49 ~/gce-cron-test $ python requests-test2.py
Traceback (most recent call last):
  File "requests-test2.py", line 40, in <module>
    sheet = get_gspread_book(secret_key, book_name).worksheet(sheet_name)
  File "requests-test2.py", line 20, in get_gspread_book
    credentials = ServiceAccountCredentials.from_json_keyfile_name(secret_key, scope)
  File "/home/hoge/.pyenv/versions/3.8.5/lib/python3.8/site-packages/oauth2client/service_account.py", line 219, in from_json_keyfile_name
    with open(filename, 'r') as file_obj:
FileNotFoundError: [Errno 2] No such file or directory: '/Users/hoge/git-repository/env2/my-web-hoge-app-hogehoge.json'

Par inadvertance, un tel fichier n'existe pas. Sans surprise, le chemin d'accès local complet du Mac était toujours spécifié. Local est VScode, mais cela est corrigé dans l'éditeur de code de CloudShell.

cloudshell


cloudshell:09/26/20 02:55:55 ~/gce-cron-test $ pwd
/home/hoge/gce-cron-test
cloudshell:09/26/20 02:56:12 ~/gce-cron-test $ cloudshell open requests-test2.py

La commande "cloudshell open" lance l'éditeur de code, modifiez donc le chemin json. スクリーンショット 2020-09-26 12.00.21.png

C'est une ré-exécution.

cloudshell


cloudshell:09/26/20 03:00:32 ~/gce-cron-test $
cloudshell:09/26/20 03:00:33 ~/gce-cron-test $ python requests-test2.py
2020/09/26 03:01:15 Le grattage est terminé.
cloudshell:09/26/20 03:01:18 ~/gce-cron-test $

J'ai pu gratter en toute sécurité. Cliquez ici pour la source complète. Web scraping débutant avec Python (2) L'heure sur GCP est UTC par défaut, ce sera donc -9 heures, heure de Tokyo. スクリーンショット 2020-09-26 19.15.39.png

La prochaine fois, je vais créer une VM sur Google Compute Engine, vérifier l'opération de scraping et essayer de l'exécuter automatiquement avec cron.

Recommended Posts

Scraping Web pour débutants avec Python (4) --2 Scraping sur Cloud Shell
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
Web scraping par les débutants avec Python (4) -3 Création d'instances de VM GCE et scraping sur VM
[Pour les débutants] Essayez le web scraping avec Python
Grattage WEB avec Python (pour mémo personnel)
Installation de TensorFlow sur Windows Easy pour les débutants en Python
Manuel python pour les débutants
OpenCV pour les débutants en Python
[Pour les débutants] Comment utiliser la commande say avec python!
Les débutants en Python sont bloqués dans leur premier scraping Web
[Pour les débutants] Web scraping avec Python "Accédez à l'URL de la page pour obtenir le contenu"
Web scraping avec python + JupyterLab
Utilisez matplotlib sur Ubuntu 12 et Python
Construction de l'environnement Python3 (pour les 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
#List Python pour les super débutants
Web scraping débutant avec python
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Utiliser Python sur Windows (PyCharm)
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 4 Utiliser l'interface graphique
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image par eux-mêmes
Comment configurer cron pour le scraping Python normal sur le serveur Sakura.
Exercices Python pour les débutants # 2 [pour instruction / instruction while]
Matériel pédagogique Web pour apprendre Python
Web scraping avec Python Première étape
J'ai essayé webScraping avec python.
Ensuite, utilisez Python (Flask) pour Heroku!
Python #index pour les super débutants, tranches
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (5) [Introduction au fonctionnement de la base de données avec le shell Django]
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>
Fonction Python #len pour les super débutants
Grattage Web pour les notifications d'avertissement météo.
Comment mettre à jour la version Python de Cloud Shell dans GCP
Exécutez unittest en Python (pour les débutants)
Sakura utilisant Python sur Internet
Python #Hello World pour les super débutants
Python pour les super débutants Super débutants Python # dictionnaire type 2
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 9 Utilisation à partir du langage C
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (2) [Création de projet]
[GCP] Procédure de création d'une application Web avec Cloud Functions (Python + Flask)
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 3 Écrire dans un fichier
Ajouter des mots au dictionnaire utilisateur de MeCab sur Ubuntu pour une utilisation en Python
Janken Poi avec Python Exécutons sur un serveur local Windows pour les débutants
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (1) [Construction de l'environnement]
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 6 Améliorer le code Python
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
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)
Note de nfc.ContactlessFrontend () de nfcpy de python
[Débutant] Scrapage Web Python facile à comprendre à l'aide de Google Colaboratory
Utiliser Tabpy avec Cloud Run (sur GKE)
Mettons ensemble Python pour les super débutants