Nun, vorherige Ich werde das Scraping-PGM zum erstellten Cloud Source Repositroies-Repository hinzufügen.
(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)
[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
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
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] %
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
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.
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.
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.
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