南びわ湖エリア情報

草津市・守山市・栗東市周辺の情報を発信していきます

pythonでスクレイピング(selenium 基礎編)

pythonスクレイピングselenium)について、独学を進めます。

f:id:minamibiwako:20220101111057p:plain

 

前回の pythonでスクレイピング(beautifulsoup 応用編)の続きです。

無料の youtube 動画を利用して、すべて「無料で独学していくシリーズ記事です。

 

PC作業環境

OS: Windows 8.1

ブラウザ:Chrome(クローム

 

この記事では、上の環境で動作させた内容になっています。

自分の作業環境に合うように、必要があれば記事内の設定を合わせてください。

 

プログラムを理解する必要はありません。

「***.py」と「***.bat」をコピペして動かしてみる。それだけ。

使えそうだなと思ったら、必要な部分だけを改変して使ってみる。それだけ。

(書いている私は、組み込み系でプログラム経験は長めですw。python勉強中!)

 

 

 

目次

 

 

 

selenium によるブラウザの自動操作

pythonスクレイピングをするために、javascriptを使ったサイトを閲覧できるようにブラウザの自動操作をするselenium」(セレニウムを使っていきます。

 

概要

今回やることの概要の動画があったので貼ります。

f:id:minamibiwako:20220101115138p:plain

f:id:minamibiwako:20220101115220p:plain

f:id:minamibiwako:20220101115250p:plain

f:id:minamibiwako:20220101115402p:plain

 

 

動作環境を準備する

pythonでブラウザを自動操作する

selenium(セレニウム)について

無料の youtube 動画を参考にして学んでいきます。

今回はこの動画で学んでいきます。(参考にする動画は直感で選んでます)

 

Python+selenium+ChromeDriverを使ってwebスクレイピング - YouTube

f:id:minamibiwako:20220104150911p:plain

 

 

動画の説明どおりに selenium をインストールしていきます。

動画のコマンドプロンプト(拡大)

f:id:minamibiwako:20220104152458p:plain

 

実際にコマンドプロンプトで入力した状況 をキャプチャして貼り付けています。

pip list で selenium がインストールされていないことを確認した後に

selenium をインストールしています。

f:id:minamibiwako:20220104175046p:plain

f:id:minamibiwako:20220104180746p:plain

f:id:minamibiwako:20220104180812p:plain

selenium はインストールできたので、pip のエラー出てるけどスルーしてます。。。
selenium バージョン 4.1.0 がインストールできたことが確認できました。


 

ブラウザ chrome(クローム)のバージョンを確認します。

f:id:minamibiwako:20220104185639p:plain

f:id:minamibiwako:20220104190237p:plain

 

自分のクロームのバージョンに合わせたドライバをダウンロードします。

chromedriver.chromium.org

 

自分のクロームのバージョンに合ったドライバのところをクリックします。

f:id:minamibiwako:20220104191859p:plain

 

 

win32 のドライバの zip をダウンロードします。

f:id:minamibiwako:20220104192133p:plain

★AAA

zip ファイルを展開して、c:ディレクトリの直下にフォルダごと移動しました。

f:id:minamibiwako:20220104192335p:plain

 

[2022.02.12 追記] webdriver for chrome を更新する

突如、下のようなエラーが出て、seleniumが走らなくなってしまいました。

ロームって、勝手にバージョンアップしているの???

selenium.common.exceptions.SessionNotCreatedException: Message: session not crea
ted: This version of ChromeDriver only supports Chrome version 96
Current browser version is 98.0.xxxx.xx with binary path C:\Program Files (x86)\
Google\Chrome\Application\chrome.exe
Stacktrace:
Backtrace:
        Ordinal0 [0x005

ロームを更新した覚えはないけど、バージョンが新しくなったようなので、クロームドライバを更新します。

 

chromedriver.chromium.org

 

上のサイトから、クロームのバージョンに近いドライバを探します。

f:id:minamibiwako:20220212163425p:plain

 

ウインドウズ用のクロームドライバをダウンロードします。

f:id:minamibiwako:20220212163748p:plain

 

ダウンロードしたらzipを展開して、↑上の ★AAA のフォルダの

chromedriver.exe を新しい物に置き換えました。

これで、エラーは無くなり動作することが確認できました。

 

 

準備完了した動作環境が正しく動くか確認する

f:id:minamibiwako:20220105050513p:plain

動画のとおりの get_html_101.py ファイルを作成します。

プログラムを独学する場合において、気を付けることとして

「3か月たったら、今やってることは、すべて忘れてしまう」ということです。

せっかく時間をかけて独学しても、3か月経ったら、ほぼ間違いなく、全ての内容を忘れてしまっています。もちろん、忘れてもいいのです。というか、積極的に忘れましょう!

 

重要なことは、「忘れることを前提に、独学を進めていく」と言う事です!

 

pythonを実行するときには必ず、

1)***.py というファイルにソースを書く

2)***.bat というバッチファイルなどのスクリプトを書いて、1)の ***.py を実行する

 

この1)、2)で、実行したことをファイルに残しておけば、3か月後の自分が全てを忘れていても、スクリプト(バッチファイルなど)を実行すれば、今と同じ結果が必ず再現できるというわけです。

(作業環境に変化を加えた場合には、必ずメモに残しておきましょう!)

 

3か月後の自分が、きっと「ありがとう、自分よ♪」というはずですw

 

f:id:minamibiwako:20220105051752p:plain

https://minamibiwako.hatenablog.jp/entry/2020/07/01/000000#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E5%AD%A6%E7%BF%92%E9%81%8E%E7%A8%8B%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

 

話を戻して、

動画のとおりの get_html_101.py ファイルを作成します。

最初の5行は「不明文字処理」として追加しています。

get_html_101.py
# coding: shift_jis
import io,sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
#不明文字処理(1行目は必ず # coding: shift_jis にすること。でないと エラーになるので注意!)

from selenium import webdriver
import time

#ブラウザを開く
#webdriver.Chrome(driver_path)
driver = webdriver.Chrome("C:/chromedriver_win32/chromedriver.exe")

# 1秒待機
time.sleep(1)

 

 

do_py101.bat
rem do_py101.bat
@echo off
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set time2=%time: =0%
set hour=%time2:~0,2%
set minute=%time2:~3,2%
set second=%time2:~6,2%
set logname=%year%-%month%-%day%_%hour%_%minute%_%second%

python get_html_101.py >> %logname%_get_html_101.txt

rem pause

 

 

出力結果(1)

このバッチファイルを実行すると、ブラウザが立ち上がりました。

f:id:minamibiwako:20220105091658p:plain

 

そして、中身が空のファイル(実行日時がファイル名)が生成されます。

出力結果(1) としては、ここまで

 

なのですが、コマンドプロンプトを確認するとワーニングが出ています。

DeprecationWarning: executable_path has been deprecated, please pass in a Service object

f:id:minamibiwako:20220105091936p:plain

この後にも、6個ぐらいのエラー(226、229、232、236、214、0x1F)が出ています。

どうやら、selenium3→ 4に変わったことによるワーニング&エラーのようです。

 

Selenium 4で「DeprecationWarning」が出る場合の対策 | ジコログ

self-development.info

 

うーん、、、書かれているように対策してみたのですが、、、

chrome_service = fs.Service(executable_path=driver) など、、

ワーニングもエラーも消えません。。。

 

 

[Solved] DeprecationWarning: executable_path has been deprecated, please pass in a Service object - Exception Error

exerror.com

こっちのサイトの対策で、ワーニングは消えました。

 

エラーは消えませんが、、、

深追いはせずに、chromeブラウザは立ち上がっているので、

このまま進めていきます。。。すごく気になるけど。

(ワーニング消えたソースは、次 の「get_html_102.py」を見て下さい。)

 

selenium4は、2021年10月 リリースと新しいので、エラーの対策情報がすぐに見つかるかどうか心配ではありますが、情報を探しながら進めていきます。ドライバがアップデートされると問題が解決されたという事例もあるようなので、エラー出てるけど、動作はしているので進めます。

 

プログラム経験が全く無くて、はじめて python を学んでるという感じの方だと、こういうよく分からない事案が発生すると、かなり やる気が削られてしまうと思います。そのまま、スルーして進めるのか、解決まで掘り下げるのかの見極めは難しいなと感じます。まぁ、ググっても、どうしようもない・解決できない ときで、なんとか動いているなら進めましょう!後から、そういうことかぁ!と解決できることも、多々あるので。

 

ということで、selenium 動作環境が 正しくw 動いていることが確認できました。

 

 

webサイトを開く

f:id:minamibiwako:20220105163628p:plain

 

動画のとおりの get_html_102.py を作成します。

ワーニングを消すための変更を加えています。

 

get_html_102.py
# coding: shift_jis
import io,sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
#不明文字処理(1行目は必ず # coding: shift_jis にすること。エラーになるので注意!)

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import time

#ブラウザを開く
s = Service("C:/chromedriver_win32/chromedriver.exe")
driver = webdriver.Chrome(service=s)

#webページを開く
driver.get("https://minamibiwako.hatenablog.jp/")

# 1秒待機
time.sleep(1)

 

 

do_py102.bat
rem do_py102.bat
@echo off
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set time2=%time: =0%
set hour=%time2:~0,2%
set minute=%time2:~3,2%
set second=%time2:~6,2%
set logname=%year%-%month%-%day%_%hour%_%minute%_%second%

python get_html_102.py >> %logname%_get_html_102.txt

rem pause

 

 

出力結果(2)

このバッチファイルを実行すると、

ローム起動して webサイトが開きました。

f:id:minamibiwako:20220105165221p:plain



webサイトを開いた後に、ブラウザを閉じる

やりたいことが解説されている動画の「やりたい」部分だけを見ていきます。

「ブラウザを閉じる」

f:id:minamibiwako:20220106055057p:plain

 

get_html_103.py
# coding: shift_jis
import io,sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
#不明文字処理(1行目は必ず # coding: shift_jis にすること。エラーになるので注意!)

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import time

#ブラウザを開く
s = Service("C:/chromedriver_win32/chromedriver.exe")
driver = webdriver.Chrome(service=s)

#webページを開く
driver.get("https://minamibiwako.hatenablog.jp/")

# 5秒待機
time.sleep(5)

#ブラウザを閉じる
driver.quit()

 

do_py103.bat
rem do_py103.bat
@echo off
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set time2=%time: =0%
set hour=%time2:~0,2%
set minute=%time2:~3,2%
set second=%time2:~6,2%
set logname=%year%-%month%-%day%_%hour%_%minute%_%second%

python get_html_103.py >> %logname%_get_html_103.txt

rem pause

 

出力結果(3)

 結果(2)と同様にwebサイトが開いた後に、Chromeブラウザが閉じました。

 

 

yahoo! で「琵琶湖」画像を検索する

この動画を参考にして進めていきます。

f:id:minamibiwako:20220106070059p:plain


動画を参考にして、「get_html_103.py」をベースに

「get_html_104.py」を作成します。

f:id:minamibiwako:20220106073054p:plain

 

get_html_104.py
# coding: shift_jis
import io,sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
#不明文字処理(1行目は必ず # coding: shift_jis にすること。エラーになるので注意!)

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from time import sleep

options = Options()
options.add_argument("--incognito")

#ブラウザを開く
s = Service("C:/chromedriver_win32/chromedriver.exe")
driver = webdriver.Chrome(service=s, options=options)

#webページを開く
url = "https://search.yahoo.co.jp/image"
driver.get(url)

# 5秒待機
sleep(5)

query = "琵琶湖"
search_box = driver.find_element_by_class_name("SearchBox__searchInput")
search_box.send_keys(query)
search_box.submit()

# 5秒待機
sleep(5)

#ブラウザを閉じる
driver.quit()

 

do_py104.bat
rem do_py104.bat
@echo off
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set time2=%time: =0%
set hour=%time2:~0,2%
set minute=%time2:~3,2%
set second=%time2:~6,2%
set logname=%year%-%month%-%day%_%hour%_%minute%_%second%

python get_html_104.py >> %logname%_get_html_104.txt

rem pause

 

出力結果(4)

chromeブラウザが開き、yahooサイトに飛び、検索窓に「琵琶湖」が入りました。

f:id:minamibiwako:20220106074536p:plain

 

 

「琵琶湖」画像の検索結果が表示され、ブラウザが閉じました。

f:id:minamibiwako:20220106074916p:plain

 

 

ブラウザを自動スクロールする

下の動画を参考にして進めます↓

【Python × スクレイピング入門⑫】10分で習得!ブラウザを自動スクロールしよう! - YouTube

youtu.be

f:id:minamibiwako:20220121124637p:plain

 

上のほうにも書いていますが、selenium4 にともなうエラーが出て、動くんだけど表示が止まって、デバッグしにくくて仕方ない状態。。。なのです。なんとか、このエラーを解決したいけど、解決法が分からずです。。。

f:id:minamibiwako:20220121140857p:plain

DevTools listening on ws://127.0.0.1:65277/devtools/browser/13294b76-a6ab-49de-a6cc-d1ee11a77e54
[44780:6040:0127/083846.659:ERROR:chrome_browser_main_extra_parts_metrics.cc(227)] START: ReportBluetoothAvailability(). If you don't see the END: message, this is crbug.com/1216328.
[44780:6040:0127/083846.661:ERROR:chrome_browser_main_extra_parts_metrics.cc(230)] END: ReportBluetoothAvailability()
[44780:6040:0127/083846.661:ERROR:chrome_browser_main_extra_parts_metrics.cc(235)] START: GetDefaultBrowser(). If you don't see the END: message, this is crbug.com/1216328.
[44780:6040:0127/083846.691:ERROR:chrome_browser_main_extra_parts_metrics.cc(239)] END: GetDefaultBrowser()
[44780:26272:0127/083846.773:ERROR:device_event_log_impl.cc(214)] [08:38:46.773] USB: usb_device_handle_win.cc:1050 Failed to read descriptor from node connection: システムに接続されたデバイスが機能していません。 (0x1F)

 

イヤだけど、一応、動くので進めていきます。

ほぼ、動画のとおりに書いてますが、何か所かエラーが出てきたので直しています。

 

get_html_105.py

# coding: shift_jis
import io,sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
#不明文字処理(1行目は必ず # coding: shift_jis にすること。エラーになるので注意!)

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from time import sleep

options = Options()
options.add_argument("--incognito")

#ブラウザを開く
s = Service("C:/chromedriver_win32/chromedriver.exe")
driver = webdriver.Chrome(service=s, options=options)

# 要素が見つかるまで、最大10秒間待機する
driver.implicitly_wait(10)

#webページを開く
url = "https://search.yahoo.co.jp/image"
driver.get(url)

# 3秒待機
sleep(3)

query = "琵琶湖"
#search_box = driver.find_element_by_class_name("SearchBox__searchInput")
search_box = driver.find_element(By.CLASS_NAME, "SearchBox__searchInput")
search_box.send_keys(query)
search_box.submit()

# 3秒待機
sleep(3)

#スクロール
driver.execute_script("window.scrollTo(0, 500);")
sleep(3)

height = 1000
while height < 3000:
    driver.execute_script("window.scrollTo(0, {});".format(height))
    
    height += 100
    print(height)

    sleep(1)

#ブラウザを閉じる
driver.quit()

 

do_py105.bat

set filename=105
rem do_py%filename%.bat
@echo off
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set time2=%time: =0%
set hour=%time2:~0,2%
set minute=%time2:~3,2%
set second=%time2:~6,2%
set logname=%year%-%month%-%day%_%hour%_%minute%_%second%

python get_html_%filename%.py >> %logname%_get_html_%filename%.txt

rem pause

 

出力結果(5)

エクスプローラー上のバッチファイル [do_py105.bat] をダブルクリックすると

f:id:minamibiwako:20220121142044p:plain

 

ブラウザが「シークレットモード」で立ち上がり、

ヤフー画像検索のページが開いて、

「琵琶湖」を検索して、検索結果の画像いっぱいが表示される

自動で下にスクロールしていって、琵琶湖の画像が順番に出てくる

という動作が確認できました。

 

f:id:minamibiwako:20220121141742p:plain

 

 

画像URLを保存する

下の動画のとおりに進めます↓

【Python × スクレイピング入門⑬】自動で画像保存の準備!画像URLを取得しよう! - YouTube

youtu.be

「import pandas as pd」を付ける!

f:id:minamibiwako:20220121170925p:plain

f:id:minamibiwako:20220121170936p:plain




 

 

 

まとめ

ここまでの内容で、pythonselenium を使って chromeブラウザが動かせるイメージがつかめました。ここからは、やりたい事をイメージして、必要なソフトウェア部品をググって探しながら、それらの部品を好きなように組み合わせて、イメージを形にしていきましょう。

 

イメージしたように動かないことがたくさん出てくると思います。

 

pythonの良いところは、今、人気のある言語なので、エラー内容や、やりたいことをググったら、ほぼ検索結果として情報が得られやすいというところです。

このあと、説明に出てくるツール ↓ は、すべて無料で使えるプログラムの道具です。

いろんな言語の得意分野をうまく活用しながら連結して使っていくというのもありです。windows環境なら、「バッチファイル」や「powershell」などのスクリプトを使って、いろんなプログラムを連結することができます。cygwinなどでシェルを使った連結をすれば、より大きな連結ができるかもしれません。

 

バッチファイル、powershellcygwin などのスクリプトに「流れ」を担当してもらい、python に「処理」を担当してもらうというふうに

 

「流れと処理を分ける」

 

ことを意識しましょう!

「流れ」も「処理」も大きくなりすぎたら、関数化してレイヤー分けをして考える範囲・焦点を当てる範囲をなるべく小さくしましょう!

 

大きく複雑になってきたら関数化(ブラックボックス化)してレイヤー分け、どうしてもCUIでの実現が難しい場合は「uwsc」でマウス操作の補完、 これらをうまく使うと助けになると思います。

pythonでも、cでも、いろんなスクリプトでも「関数化」を使って、一度に考える範囲を小さく限定するようにしましょう。

勉強中の個人なら、ほんと何でもありです。教科書やレッスンどおりに、つまらない課題をやってもプログラムの独学は挫折します。ワクワクすることを独学で、「プログラムにやらせてみる」ということをやっていきましょう!

 

プログラムが動かないときのコツ「流れと処理を分ける」

さらに処理を 関数化 して

ピント(焦点)を合わせる

 

何が動かないかが分からないw こういうときは、一度に考える範囲が大きくなりすぎています。具体(細部)が見えすぎて、複数レイヤーの部品が一か所に集まりすぎて、全体像のピントがぼやけているのだと思います。関数化とか(モジュール化とか、オブジェクト化とか)の「見えない化」という剣でブッタ切りましょう!複雑に大きくなっている部分はないか、そこを関数化して見えない化できないのか?ピントがぼやけてきたら、すぐに見えない化にとりかかりましょう。レイヤーを分けて関数化して切り取るとき、その関数への入力、その関数の処理、その関数からの出力をしっかりとらえましょう。

 

          (処理)

 ┏━━━━┓  ┏━━━━┓  ┏━━━━┓

 ┃ 入力 ┃⇒ ┃ 関数 ┃⇒ ┃ 出力 ┃

 ┗━━━━┛  ┗━━━━┛  ┗━━━━┛

そうやって、関数(見えない化)として切り取ったとき、もとの全体像がすっきりスリムになって、断然考えやすくなっているーって感動してくださいw

特に、関数を呼ぶときの入力が何なのか?

関数(見えない化)の「 レイヤー分け プロトコル が把握できなくなっていることが、プログラムが動かない原因の95%ぐらいを占めていると思っています。複雑に大きくなりすぎた部分を関数の中に入れてレイヤーを分けてしまい見えなくすること。関数を呼ぶ時点で、ある状態の入力を入れたら、その関数でどう処理されて何が出てくるのか。レイヤーとレイヤーの境目、関数と関数の境目の「入力と出力」だけつかんでおけば、中身の複雑なやりとりはゴッソリとブラックボックス化できます。これが、関数化=見えない化=ブラックボックス化 です。

 

プロトコル?なんか、むずかしい言葉出てきたぞと思ったあなた。

安心して下さい。簡単です。

一言で言えば、グローバル変数を使うな!」です。

関数の入力と出力を把握するということです。入力してないのに、勝手に関数内の変数が変わるということを避けて、この入力を入れたから関数内で処理が行われたよね!と「流れ」のレイヤーから「処理」部品の操作が把握できることが大切です。

 

あと関数化のところをもう少し深く見ると、「関数化」とは

抽象域のことを考えるターンで、具体な細部のことを関数内に押し込めるということです。友達がいきなり部屋に遊びにくることになったときの押入れみたいなもので、見えてほしくないものを突っ込んで見えなくできるのが関数です。このように関数を使って細部の具体を見えない化することで、1ターン内に考える範囲を小さくおさえましょう。切り分けた関数側の細部にとってもメリットがあります。細部を確認したい場合には、その関数内に入り、この入力が入って、この出力を出すのに、この処理をしているだなというふうに、具体細部を外部要因から切り離してじっくり追っていけると言う事です。一度に考えることができる大きさまでに、関数を使ってレイヤー分けして小さく具体を箱に詰めていくことで、複雑化に対処しましょう。関数と言う箱に複雑な処理は詰め込んで中身を見えなくしてしまい、箱がどうつながるのかの流れだけが見えるようにしていきましょう(関数内でも、「流れと処理を分ける」です!)。そしてまた、その流れも箱に入れて、上のレイヤーで箱としてつなげて、どんどん大きな仕組みを作る対処をしていけます。

 

UNIXという考え方 その設計思想と哲学 [ マイク・ギャンカーズ ]

価格:1,760円
(2022/10/29 09:50時点)
感想(2件)

「流れと処理を分ける」が行きつく究極のイメージは

UNIXの「コマンドとコマンドをパイプでつなげて」やりたいことを実行することです。

処理がコマンド、流れがパイプを使ったシェルスクリプトな感じです。

ワンライナー - Google 検索

プログラムの設計思想として、とても参考になります。

 

 

 

 

逆説的に「関数化」の重要性が分かる動画

f:id:minamibiwako:20220128145011p:plain

 

考える範囲が小さくなって、ピントが合うと、人間は集中力が増して解決できることが多くなります。また、大きなプログラムの複雑化に対処するコツとして、関数名や変数名を名付けるとき、「名はよく体を表す」ようにするのも重要です!思考のピントが合いやすいプログラムの大きさ(見えない化で一度に考えるレイヤーを小さくする)と、関数・変数の名付け方を工夫していきましょう。

 

マインドマップ作成ツールのミソは
抽象度の上げ下げを自由自在にできること!

http://blog.livedoor.jp/minamibiwako/archives/31071477.html

 

マインドマップと同様に、プログラムでも関数化という「見えない化」をつかって、焦点を当てたい「考える範囲」を小さくして、壮大なプログラムの抽象と具体を自由自在に行き来(いきき)しましょう!

 

無料で公開されている関数、API、アプリ、ソフトウェアがたくさんあります。ググれば、使い方の動画や解説サイトがたくさんあります。どんどん使わさせてもらいましょう。そして、いつか、大成功して余裕たっぷりになった暁には、人類の英知から受けた恩恵に恩返しができるように、人の役に立つことができればいいなと思っています。

 

 

【Python】Word2Vecの使い方 - Qiita

qiita.com

 

 

 

PyAutoGuiで繰り返し作業をPythonにやらせよう - Qiita

qiita.com

 

 

 

https://youtu.be/qbobDx3bqq4

元MITメディアラボ所長の伊藤穰一が語る、GAFAを超えられない日本企業の問題点とは?【成毛眞】 - YouTube

 

[4:56]~

GAFAM → GAMAM(ガーマム):facebook が Meta(メタ) に社名変更

マイクロソフトwindows)が一太郎を食べちゃう構図

(グローバルスタンダード が ガラパゴス を食べる)

楽天デジタルガレージソニートヨタソフトバンク

バンドワゴン効果、ロックイン

英語ユーザーが多い、人数が多いとこの勝ち

 

[8:30]~

伊藤氏

そこで競争する

コモディティーになったもので競争する理由はあんまりない

何が大事かというと、日本から競争することを考えると

クラウドをベースに上によじ登って来るわけよね

マイクロソフトの話ばっかりするつもりないんだけど

OSもってたら、アプリで戦えるのと同じで

データセンターからよじ登って、ミドルウェアに入ってくるんで

そこはたたかないといけない

コモディティーのところだけだったら、やってもらっても

ぜんぜん構わない

グーグルもマイクロソフトもアマゾンも、

ぜんぜん入れ替えられるわけですよね、下のウェア

中に入ってきちゃうと、やっかいなので

ここで、アーキテクチャっていうと普通の人は

建築みたいなこと想像するんだけど

アーキテクチャっていうのは、

この レイヤー とこの レイヤー はきれいに分けて

たとえば、発注するときには

このやっかいなミドルウェアは買わない、土管だけくれ!

っていう買い物の仕方があるんだよね

それを、ちゃんとね、土管屋は土管屋にしとけば

あんまり、それほどやっかいにならない

ここの大事なプロトコルのレイヤーは

デジ庁なり日本がちゃんと入って、オープンにしとけば

そこの上に、また日本の会社って作れるんだけども

なんか、中途半端に下からよじ登ったやつらにコントロールさせたり

ここ下の一番安いところで競争したり

なんかねレイヤーを間違ってるんだよね

 

 

レイヤーとレイヤーを接続して、大きなものを作っていくのは、どんな分野も同じことなんだと思います。すでにある、誰かが作ってくれたレイヤー。それらをつなぐときのやり取り部分、接続部分を作るのが「プログラミング」って呼んでるものなのかもしれない。

 

【ひろゆきvs成田悠輔の弟】不幸は「楽しもう」•••磯野家vs成田家【30代で上場企業の役員】 - YouTube

f:id:minamibiwako:20220126043652p:plain

 

 

くだらないAPIなんていらないよ – 2016年のウェブスクレイピング事情 | POSTD

https://postd.cc/dont-need-no-stinking-api-web-scraping-2016-beyond/

postd.cc

 

なぜ、Seleniumが必須なのか?
それは、以下の理由です。

JavaScriptにより動的コンテンツを表示している
スクロールにより追加コンテンツを表示している(改ページの概念がない)

引用元:https://self-development.info/selenium%e3%81%a7twitter%e3%82%92%e3%82%b9%e3%82%af%e3%83%ac%e3%82%a4%e3%83%94%e3%83%b3%e3%82%b0%e3%81%99%e3%82%8b%e3%80%90python%e3%80%91/

 

 

◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■

  視点のメモ

◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■

配られたカードを確認してみる

配られたカードで「日本で暮らす」というゲームを遊ぶ

カード

 1枚目:今後、日本の人口は急減していく(世界は人口爆発

 2枚目:日本では少子高齢化が進み、働き手が不足していく

 3枚目:インターネットやスマホのインフラは整っている

 4枚目:、、、(記述中)

これらのカードを悲観的にみるのではなくて、強み や チャンス は何か?

f:id:minamibiwako:20220111044831p:plain

画像引用元:https://www.google.com/search?q=%E9%85%8D%E3%82%89%E3%82%8C%E3%81%9F%E3%82%AB%E3%83%BC%E3%83%89&tbm=isch&tbs&hl=ja

 

SDGs としての人口減少

世界の人口爆発

f:id:minamibiwako:20220107050525p:plain

画像引用元:http://blog.livedoor.jp/minamibiwako/archives/4595938.html

 

地球規模での人口爆発 問題という視点でみると、

実は「日本の人口減少」は「人間が住みやすい地球」に向かう

持続可能な開発目標の最先端を走っているのではないのか?

minamibiwako.hatenablog.jp

日本の人口が急減するのは避けられない。

その状況の中で、どうやって「幸せ」に生きていくのか?

どうすれば、人の役に立てて、その対価としての「お金」を稼げるのか?

 

自分の考えをまとめる道具としてのアプトプット

 

 

「生活の資本化」としての 地域情報ブログ

毎日生活してるだけで、その地域のローカル情報を得られる強み

人口の少ない田舎に行くほど、ライバルが少なくなるという強み

 

 

「生活の資本化」

 

 

「ゴミの資本化」

生活をすれば、ゴミは出る。ゴミの売り方を見つけさえすれば、ゴミは資本化される。そしてそこでやっと間接的に、「生活の資本化」も達成されることになる。生活を売ろうってのに、健康でない、ってのは意味不明だ。たくさんゴミを出すためにも、生活をしないとならない。その生活は、健康に支えられる。健康とは、たくさんゴミを出すことだ。そして、そこで出たゴミを畑に持っていき、肥料とすることだから。

引用元:https://note.com/taichinakaji/n/n389fb0124831

 

しょぼい起業で生きていく

新品価格
¥1,287から
(2022/1/7 06:57時点)

反応がある思考実験としてのアウトプット

PV、インプレッション、アフィ収益などの指標で、

市場の反応を確認しながら思考実験ができるということ!

 

たて・よこ・算数

歴史は繰り返すし、転写する

たて(歴史)、よこ(世界情勢)、算数(Dx、自動化)を使って、手持ちのカードの強みは何なのか?その本質を見ていくということ。

 

ツイッターという「たて・よこ・算数」

ひとつのアカウントをうんと深堀りできるし、ひとつのキーワードで検索かけたらみんなの意見がみれる。

 

 

 

 

 

 

なぜ、プログラミングを独学するのか?

なぜ、プログラミングを学ぶのか?

 

 [答え] 大きなことをしたいから

 

一人で限られた時間内にできることは小さいです。

そこで、大きなことをやりたい場合

「①人、②お金、③もの」の力を借りる必要が出てきます。

かかるコストは

 

①人 > ②お金 > ③もの

 

という順になって、人の力を借りるには大きなコストがかかります。

一番コストが小さい 「③もの」 の力を借りるところから始めましょう。

 

 

 

いろいろな 「③もの」 の中から、今回は PC(パソコン)の力 を借ります。

プログラムという「めいれい」を書いてやりさえすれば、

文句も言わずに、しっかり働いてくれる頼もしいヤツです。

 

この、しっかり者のパソコンに働いてもらうために、プログラムを学ぶのです。

あなたが書く「めいれい」どおりに、

あなたを助けてくれる相棒(パソコン)なのです。

 

プログラムによる自動化で、ネットから情報を集めて、分析して、

わかりやすくレポートできれば、これは 一次情報の創造 です。

 

 

 

 

 

https://youtu.be/SyAxHomAWf4

f:id:minamibiwako:20220106023036p:plain

③科学的な考え方/データ主義 は、まさにプログラミングと相性がバツグン!

 

 

 

VUCA時代を生き抜く為の思考法とは?成毛眞と山口周が「ビジネスの未来」を徹底予測 - YouTube

 

ガラパゴス天国(日本、地域ブログ、組み込み系)を泳いでみる

・日本というガラパゴス

https://youtu.be/1GFNCUvz2Yw

 

 

地域ブログというガラパゴス

  「生活の資本化」としての 地域情報ブログ

  人口の少ない田舎に行くほど、ライバルが少なくなるという強み

  (もちろん、読む人も少なくなるけどねw)

 

 

 

・組み込み系というガラパゴス

私見ですが。
組み込み用の書き方、と言うのはありません。
この世界の中では、あなたが神 となりますので、そのハードウエアが実現可能のものであれば、あなたが自由に組み合わせ、実現することができます

引用元:組み込み用のソフトの書き方(main()の中身) - 002: 初心者向けフォーラム - かふぇルネ - Renesas Rulz

 

 

 

プログラマー

思考実験レンガを焼く職人であり

ブロックを組み立てる建築家であり

バグの身辺調査をする探偵であり

優秀な単純労働ロボを創造する神である

 

 

さぁ、プログラムを使って「1次情報を創造」しましょう!

これからの時代は、「一次情報=コンテンツ」をつくれる者が勝つということです。

コンテンツとは、ジョジョのスタンドとか、ヒロアカの個性とか、ワンピ―スの実みたいなことです。

 

 

f:id:minamibiwako:20220125182014p:plain

スカイネット スーパーサウンド 呼び込み君 ミニ

新品価格
¥792から
(2022/1/26 05:09時点)

 

 

f:id:minamibiwako:20220126044037p:plain

 

 

 

この支配からの「卒業」

こ〜の支配からの 卒業~♪w

 

 

■■■■■■■■■■■■■■■■■■■■■■■■■■■■

■■■■■■■■■■■■■■■■■■■■■■■■■■■■

以下、ネット上の反応

 

縁あって読んでくれた人が、成功するように書こうと思いました。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

↓ これに関しては、ブログ初心者はワードプレスではなく

「無料」はてなブログ でよい!

参考:https://minamibiwako.hatenablog.jp/entry/2021/03/10/182627

minamibiwako.hatenablog.jp

 

↓ だからこそ、無料のはてなブログでよい!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

■■■

ツイッター堀り