Web-Scraping für Anfänger mit Python (4) --2 Scraping auf Cloud Shell

Nun, vorherige Ich werde das Scraping-PGM zum erstellten Cloud Source Repositroies-Repository hinzufügen.

Roadmap zum Erlernen des Web Scraping in Python

(1) Schaffen Sie das Zielmaterial vorerst erfolgreich vor Ort ab. (2) Verknüpfen Sie die Ergebnisse von lokal abgekratzt mit einer Google-Tabelle. (3) cron wird automatisch lokal ausgeführt. (4) Fordern Sie die kostenlose automatische Ausführung auf dem Cloud-Server heraus. (Google Compute Engine) (4) -1 Legen Sie das Test-PGM in die Cloud und führen Sie es normal in CloudShell aus. (4) -2 Fügen Sie das Scraping-PGM zum Repository hinzu und führen Sie es normal in CloudShell aus. ← Jetzt hier </ font> (4) -3 Erstellen Sie eine VM-Instanz von ComputeEngine und führen Sie das Scraping automatisch aus. (5) Fordern Sie die kostenlose automatische Ausführung ohne Server in der Cloud heraus. (Vielleicht Cloud-Funktionen + Cloud Scheduler)

Dieses Verfahren

[1] Scraping-PGM zum lokalen Repository hinzugefügt [2] Push-to-Master-Cloud-Quell-Repositorys [3] Vom Master zum Klonen auf CloudShell ziehen [4] Masseninstallation der erforderlichen Module mit den Anforderungen.txt [5] Scraping in CloudShell durchführen

[1] Scraping-PGM zum lokalen Repository hinzugefügt

Fügen Sie die Datei Ihrem lokalen Repository hinzu.

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

Stellen Sie sicher, dass Dateien festgeschrieben werden müssen, und fügen Sie sie hinzu und schreiben Sie sie fest.

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 von Cloud Source Repositries

Mach einen Push, um zu meistern.

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] Vom Master zum Klonen auf CloudShell ziehen

Ziehen Sie in das zuvor geklonte Repository in Cloud Shell.

cloudshell


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

Stellen Sie sicher, dass es dem CloudShell-Repository hinzugefügt wurde. (Später habe ich die durchgesickerte Anforderung.txt hinzugefügt.)

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] Masseninstallation der erforderlichen Module mit den Anforderungen.txt

Installieren Sie die erforderlichen Module in großen Mengen mit den Anforderungen.txt.

cloudshell


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

Überprüfen Sie die Liste der Pips. Ich habe alle notwendigen Module in der Datei "resources.txt" mit "pip freeze> require.txt" lokal auf dem Mac abgelegt, damit ich sie natürlich richtig habe.

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] Scraping durchführen

Versuchen Sie, das Scraping-PGM "request-test2.py" auszuführen.

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'

Es gibt versehentlich keine solche Datei. Es überrascht nicht, dass der vollständige lokale Mac-Pfad weiterhin angegeben wurde. Lokal ist VScode, dies ist jedoch im Cloud-Code-Editor von CloudShell behoben.

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

Der Befehl "cloudshell open" startet den Code-Editor. Ändern Sie daher den json-Pfad. スクリーンショット 2020-09-26 12.00.21.png

Es ist eine Neuausführung.

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 Das Schaben ist beendet.
cloudshell:09/26/20 03:01:18 ~/gce-cron-test $

Ich konnte sicher kratzen. Klicken Sie hier für die vollständige Quelle. Web-Scraping für Anfänger mit Python (2) Die Zeit auf GCP ist standardmäßig UTC, also -9 Stunden Tokio-Zeit. スクリーンショット 2020-09-26 19.15.39.png

Beim nächsten Mal werde ich eine VM in Google Compute Engine erstellen, den Scraping-Vorgang überprüfen und versuchen, ihn automatisch mit cron auszuführen.

Recommended Posts

Web-Scraping für Anfänger mit Python (4) --2 Scraping auf Cloud Shell
Web Scraping für Anfänger in Python (1)
Web Scraping für Anfänger in Python (4) -1
Web Scraping für Anfänger in Python (1) Verbesserte Version
Web-Scraping durch Anfänger mit Python (4) -3 GCE VM-Instanzerstellung und Scraping auf VM
[Für Anfänger] Versuchen Sie Web Scraping mit Python
WEB-Scraping mit Python (für persönliche Notizen)
Installieren von TensorFlow unter Windows Easy für Python-Anfänger
Python Lehrbuch für Anfänger
OpenCV für Python-Anfänger
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Python-Anfänger bleiben beim ersten Web-Scraping stecken
[Für Anfänger] Web-Scraping mit Python "Greifen Sie auf die URL auf der Seite zu, um den Inhalt abzurufen."
Web Scraping mit Python + JupyterLab
Verwenden Sie matplotlib unter Ubuntu 12 und Python
Python3-Umgebungskonstruktion (für Anfänger)
Web Scraping mit Selenium (Python)
Grundlegende Python-Grammatik für Anfänger
100 Pandas klopfen für Python-Anfänger
Python #Funktion 1 für Super-Anfänger
[Python + Selen] Tipps zum Scraping
Python #Liste für Super-Anfänger
Web Scraping Anfänger mit Python
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
Verwenden Sie Python unter Windows (PyCharm)
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 4 Verwenden Sie die GUI
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden
So stellen Sie cron für reguläres Python-Scraping auf dem Sakura-Server ein.
Python-Übungen für Anfänger # 2 [für Anweisung / while-Anweisung]
Web-Lehrmaterialien zum Erlernen von Python
Web Scraping mit Python Erster Schritt
Ich habe versucht, WebScraping mit Python.
Verwenden Sie als nächstes Python (Flask) für Heroku!
Python #index für Super-Anfänger, Slices
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (5) [Einführung in den DB-Betrieb mit Django-Shell]
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Python #len Funktion für Super-Anfänger
Web Scraping für Wetterwarnbenachrichtigungen.
So aktualisieren Sie die Python-Version von Cloud Shell in GCP
Führen Sie unittest in Python aus (für Anfänger)
Sakura Verwenden von Python im Internet
Python #Hello World für Super-Anfänger
Python für Super-Anfänger Super-Anfänger Python # Wörterbuch Typ 2
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 9 Verwendung aus der C-Sprache
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (2) [Projekterstellung]
[GCP] Verfahren zum Erstellen einer Webanwendung mit Cloud-Funktionen (Python + Flask)
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 3 Schreiben Sie in eine Datei
Fügen Sie dem Benutzerwörterbuch von MeCab unter Ubuntu Wörter zur Verwendung in Python hinzu
Janken Poi mit Python Lassen Sie uns für Anfänger auf einem lokalen Windows-Server laufen
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (1) [Umgebungskonstruktion]
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 6 Verbessern Sie den Python-Code
Hinweise zur Verwendung von OpenCV mit Windows 10 Python 3.8.3.
INSERT in MySQL mit Python [Für Anfänger]
[Python] Protokoll des Studientreffens für Anfänger (7/15)
Verwenden Sie DeepL mit Python (für die Artikelübersetzung)
Anmerkung von nfc.ContactlessFrontend () von nfcpy von Python
[Anfänger] Leicht verständliches Python-Web-Scraping mit Google Colaboratory
Verwenden Sie Tabpy mit Cloud Run (auf GKE)
Lassen Sie uns Python für Super-Anfänger zusammenstellen