pythonでやっていたことの続きをこっちで
南びわ湖エリア情報は、ライブドアブログ から はてなブログ へ引っ越しました。
南びわ湖エリア情報は、SSL化対応を決定!
— 南びわ湖エリア情報🛳️ (@minamibiwako) March 24, 2020
ライブドアブログが SSL化未対応な件
SSL化対応済みの「はてなブログ」で
情報発信をしてみることにしました
位置付けとしては
メインブログ:https://t.co/Smw1sur0E3
サブブログ:https://t.co/ZvO67mHxaK
新記事は主にサブブログのほうで更新します pic.twitter.com/KubKwwNPJG
南びわ湖エリア情報(ライブドアブログからの引継ぎ) - 南びわ湖エリア情報
目次
pythonの独学のうち、ライブドアブログでやってた分を復習しておきます。
■■■■■■■■■■■■■■■■■■
■■■ 復習ここから
■■■■■■■■■■■■■■■■■■
PC作業環境
OS: windows 8.1
pythonインストールできた状態なら
この記事の .pyファイルとバッチファイルをコピペして、バッチファイルをダブルクリックすれば動作確認できますので、ぜひ試してみて下さい!
やったことまとめる「マインドマップ」(無料登録)無料の範囲で十分!
マインドマイスターでまとめておく。
なぜか?
詳しくは、上の記事に書いていますがマインドマップがいいのは
「考える範囲を限定して、考えたい範囲に焦点 を当てて集中できること」です。
考える範囲を限定するには「見えない化」が必要です。考えない部分は「見えない化」して、考えたい部分だけに限定できることが「見える化」なのです。
抽象化
↑
「今、考えたい部分」
↓
具体化
有料、無料のいろいろなマインドマップツールがありますが、試した中では「マインドマイスター」が 抽象化⇔具体化の行き来 がスムーズにできて使いやすいので「無料の範囲」で使っています。抽象度を上げて、俯瞰して全体を見たい時、具体的・技術的な細部の確認がしたい時、瞬時に考えたいレベルに焦点を当てられます。おすすめです。
マインドマップの利点
①抽象化・具体化の行き来により、考えのピント(焦点)を当てられるようになる
②忘れていても、前回の思考レベルに復帰しやすい
独学で何かをマスターしようとがんばってる途中で中断して、長時間が経ってしまった後でも、独学中断前時点の状況に戻しやすい。人間は3ヶ月たったら、ほぼ全てを忘れるw
自分が復帰しやすいように、まとめるのも良いスキルになる!
忙しくて、独学するのが細切れの時間になってしまう。前の細切れ時間から、次を進めるのが時間が開いてしまう前提で、マインドマイスターでまとめておくと、細切れになりがちな努力が無駄にならなくて、おすすめ。
python ダウンロード・インストール・起動 → 動きの確認
python でクローリング・スクレイピングの準備
クエスト: みなびわブログの pv 戦闘力「0.7万pv」を 30万pv に高めよ!
■■■■■■■■■■■■■■■■■■
■■■ 復習ここまで
■■■■■■■■■■■■■■■■■■
プログラム学習過程について
「何をやって、どんな結果が出たのか」記録しながら進み、ふり返れるように!
作業フォルダに「hw001.py」という名前のテキストファイルを作成します。
pythonコード hw001.py
# coding: shift_jis
print("Hello World !")
作業フォルダに「do_py001.bat」という名前のテキストファイルを作成します。
バッチファイル(pythonコードを実行) do_py001.bat
rem do_py001.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 hw001.py >> %logname%.txt
午前9時だと、timeが [_90000] のように頭にスペースが入ってしまい、出力ファイル名が途切れてしまうので、time2に一旦入れて、スペースを0に置換してから出力ファイル名に使っています。
エクスプローラー上の「do_hw001.bat」をダブルクリックすると
タイムスタンプ名のファイルに
出力結果(1)
「Hello World !」が出力され保存されます。
pythonコード( .pyファイル)をみたら、具体的にやった「コードの内容」 を、
バッチファイル( .batファイル)をみたら、何をやったのか「.py をどう実行」したか
をいつでも、見返すことができます。
pyファイルだけだと、「これって、どうやって実行してたのか?」など、分からなくことがあるので、実行環境も含め、実行の仕方をbatファイルに残しながら進めていく。
エクスプローラー上の「.batファイル」をダブルクリックしたら、いつでも再現性があり、その場ですぐに出力結果ファイルが出力できる状況で学習を進めていきます。
※内容が分からなくても、コピペして同じファイル名のファイル作成して、やってみると動くと思います!(実際に動作させたものを載せています。) pythonコードとバッチファイルをコピペして、バッチファイルをダブルクリックして出力結果を出しておく。理解していなくても、コンピューターに働いてもらえる部品を確保できるということです。必要になったときに、必要な部分だけpythonコードを書き換えれば、後から好きなように改造できます。
プログラム学習の進め方
上のライブドアブログの時にやっていたのと同様に、無料の youtube でキーワードを確認しながら、実際に python を動かしながら独学を進めていきます。
python で スクレイピング
スクレイピングとは「ゲット」と「パース」(取得と解析)
scraping
プログラムでwebサイトにアクセスし、取得したHTML情報から必要な内容を抽出すること
ツイッター、インスタグラム、メルカリ、アマゾンは
スクレイピングが禁止されています。
規約を違反しないように注意。
ゲット(取得)requests
パース(解析)beautifulsoup
japascriptが使われているサイトの html をゲット
上のライブドアブログ時の
まとめの一部を拡大
とても時間がたっているけど、ライブドアブログ時の前回の内容と一致しているので、この動画シリーズの内容に沿って、進めていきます。
作業フォルダに「get_html_001.py」という名前のテキストファイルを作成します。
南びわ湖エリア情報のブログトップページのhtmlを取得してみる!
pythonコード get_html_001.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')url = "https://minamibiwako.hatenablog.jp/"
import requests
html = requests.get(url)
print(html.url)print(html.text)
不明文字処理
プロンプト上で print(html.text) すると出力されているのに、ファイルに出力されないという問題が出ました。指定したファイル名でファイルは作成されるのですが、中身が空になってしまうという問題です。上部4行を追記することでファイルに出力されるようになりました。?になる不明文字が含まれていると処理が終了してしまい、ファイルに出力できなくなっているのが4行追記で解決されると理解して、先に進みます。
参考メモ
UnicodeEncodeError: 'cp932' codec can't encode character '\xa0'
作業フォルダに「do_py005.bat」という名前のテキストファイルを作成します。
バッチファイル(pythonコードを実行) do_py005.bat
rem do_py005.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_001.py >> %logname%_get_html_001.txt
エクスプローラー上の「do_py005.bat」をダブルクリックすると
出力結果(2)
https://minamibiwako.hatenablog.jp/
<!DOCTYPE html>
<html
lang="ja"data-admin-domain="//blog.hatena.ne.jp"
data-admin-origin="https://blog.hatena.ne.jp"
data-author="minamibiwako"
data-avail-langs="ja en"
data-blog="minamibiwako.hatenablog.jp"
data-blog-comments-top-is-new="1"
data-blog-host="minamibiwako.hatenablog.jp"
data-blog-is-public="1"
data-blog-name="南びわ湖エリア情報"以下省略
タイムスタンプ名のファイルに取得したhtml
しっかりと「南びわ湖エリア情報」の html が取得できていることが確認できました。
HTTP通信して、HTMLのゲット(取得)をする requests ライブラリが使えました。
滋賀を盛り上げていく旅は続く
pythonでスクレイピング(beautifulsoup) - 南びわ湖エリア情報
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
以下、ネット上の反応
Python Developers Survey 2020
— もりしん#Python&個人開発 (@morisin2020) March 5, 2021
よく使うlibraryとしてPickUpされたRequests
GoogleAPIで書籍情報取得するコードはわずか数行
JavaScriptのFetchのようなThenは不要でラクに書ける
こういうのがPythonの好きなところ#python #プログラミング仲間募集 #個人開発 #駆け出しエンジニアと繋がりたい pic.twitter.com/REJe9M7kvQ