modalsoul’s blog

これは“失敗”と呼べるかもしれないが、ぼくは“学習体験”と呼びたい

Python

Headlessモード時、ChromeDriverでファイルダウンロードに失敗した話

ChromeDriverでファイルダウンロードするSeleniumスクリプトを書いたとき、非Headlessモードでは成功するのに、Headlessモードで失敗した件のメモ tl;dr Headlessモードの場合、 target=_blankなアンカーをclick()してもファイルダウンロードできない target…

HeadlessモードのChromeDriverでファイルダウンロードに失敗する現象のトラブルシューティング

ファイルのダウンロードをするSeleniumのスクリプトを、docker上でheadlessモードのChromeDriverで動作させた際、ファイルのダウンロード処理に失敗する現象が起きたので、その対処方法のメモ書き 前準備 基本的なところは前回と同じ modalsoul.hatenablog.c…

Raspberry Pi Zero WHでリレーモジュールを使って電源制御

Raspberry Pi Zero WHで、大きい電圧(ex. 12V)で動作する機器の電源を制御するために、リレーモジュールをつなげてみた。1 リレーモジュール Raspberry Piでの使用例が多かったこのリレーモジュールをポチった SODIAL(R) リレーモジュール出版社/メーカー: S…

Raspberry Pi Zero WHでサーボモーターSG92Rを動かす

Raspberry Pi Zeroでサーボモーターを動かしてみた1 SG92R SG90の使用例が多いですが、今回はSG92Rを使用。特に理由はなし。 マイクロサーボ SG92R (1個)出版社/メーカー: 梅本合同会社メディア: おもちゃ&ホビーこの商品を含むブログを見る CleverCare マ…

Raspberry Pi Zero WHとMPU9250で、9軸センサー(ジャイロ、加速度、磁気)を取得する

9軸センサーが安かったので、ポチってRaspberry Pi Zeroと繋いでみた1 MPU9250 HiLetgo MPU9250 / 6500 9軸 9自由度1 6ビット ジャイロスコープ 加速用 磁気センサ IIC / SPI [並行輸入品]出版社/メーカー: HiLetgoメディア: この商品を含むブログを見る は…

Raspberry Pi Zero WHにブート/シャットダウンの物理ボタンを付けた

Raspberry Pi Zeroをポチったので、ちょっとずついじってみる Raspberry Pi Zero WH ボード&ケースセット 3ple Decker 対応-Physical Computing Lab出版社/メーカー: TechShareメディア: エレクトロニクスこの商品を含むブログを見る OSはRaspbian stretch …

Seleniumスクリプトをdocker上のHeadless Chromeで動かす

Seleniumを使った時間のかかるPythonスクリプトがあり、こいつを動かすとフォーカス取られて仕事にならないので、docker化し、ヘッドレス環境で実行するようにした Dockerfile ChromeDriverとSeleniumをインストール FROM python:3.6-alpine3.7 ENV APP_ROOT…

任意の桁数のゾロ目を生成する

n = 1のとき、f(n) = 1 n = 2のとき、f(n) = 11 n = 3のとき、f(n) = 111 n = kのとき、f(n) = 11...11 (k桁の1のゾロ目) となるf(n)の実装を考える 数式で表すと ぱっと思いついた再帰を使うパターン def fn(n, acc=0): return acc if(n == 0) else fn(n-1,…

Pythonicなリストのfilter処理

Pythonicにリストをfilterするにはどうするか?といい話題がでたので、ちょっと考えてみた 話のもとになったslackの投稿(とその擬似コード パターンA names = [x for x in names if x is CONDITION] ↑だとxに何が入ってくるのかがわからない パターンB name…

Pythonのnamedtupleを使ってScalaのcase class感覚でvalue objectを作る

複数の値をまとめて扱いたい時ありますよね。value object欲しいなって時 そんなとき、Scalaだとcase classを使いますね Case Classes | Scala Documentation case class Human(height:Int, weight:Int) こんな感じで、1行だけで複数の値をまとめて扱うこと…

Pythonのタプルでdestructuring bindingっぽい何か(unpacking assignment)でハマった

SQLArchemyを使ったアプリケーションで↓なコードがあった(詳細は割愛) (age,) = db_session.query(User.age).filter(User.id == input.id).one() 右辺がUser.ageをラップしたなにかなのはわかるんだけど、左辺がよくわからない これと似たようなもので、Sc…

Pythonのand, orやallの挙動が正格に見えたけど、ちゃんと非正格だった話

会社のSlackでの1コマ Pythonのorやallで、式の評価を途中でやめてくれない >>> print('a') or pring('b') a b ↑の場合、直感的にはbは出力されないはずだけど、バッチリでてる Pythonって正格なのか、、?と思うも、 >>> 0 and print('b') 0 こっちだとor…