PHP から Python プログラムを呼び出すときに注意すること

PHP から Python プログラムを呼び出しす時、 system_exec などを使いますが、 Python 単体で実行させた時は正常に動くのに、PHPから呼び出すとエラーになるということがありました。 1、import しているライブラリが指定のPython パス の中にはないものを…

【Python】ssh 接続後 scp でファイルをアップロードする

↓こちらのサイトを参考にして、scp を使ったファイルのアップロードをしました。 paramiko を使って Python で SFTP/SCPを行う - Librabuch from paramiko import SSHClient, AutoAddPolicy HOST = 'example.com' PORT = 22 USER = 'test_user' PRIVATE_KEY …

【Python】Selenium で basic認証

↓こちらのサイトを参考にして、Python+Selenium で basic認証のあるサイトにアクセスしました。 driver.get("http://username:password@hogehoge.com");

macOS High Sierraの起動可能なインストーラ(USBメモリ)を作ってみた

Mac

以下のサイトを参考にして、macOS High Sierraの起動可能なインストーラ(USBメモリ)を作ってみました。 まず、USBメモリを用意します。(容量が16GB以上のUSBメモリ) ディスクユーティリティでフォーマットします。(OS X 拡張(ジャーナリング)) 次に…

Google Home で、Google Playを使わずに音楽を流してみる

Google Play のサービスを使わずに、Google Homeで曲を聞く方法を探していました。 ↓こちらのサイトを見て実践しました。 Google Home で、曲を流す際も、「google-home-notifier 」を使いますが、 メッセージを喋らせる時と、ほとんど変わらず、一つだけ関…

LINE Clova スキル開発 覚書

LINE Clova のスキル開発がやっと可能になりました。 ↓以下のサイトを参考にして作ってみました。 ExtensionサーバーのURL の内容は、以下の通り。 PHPでサーバーを立てる ↓こちらは、単純にメッセージを返すだけのPHPプログラム。 test.php "1.0", 'sessio…

Dash ボタン を押して、iftttのWebhooks経由で、Google スプレッドシートに登録して、Google Home に喋らせる

先日、Amazon の Dash ボタンを押した時に、node.js を使ってイベントが拾えるようになりました。 その中で、↓以下のURLにアクセスします。 var url = "https://maker.ifttt.com/trigger/dush_button_pressed/with/key/XXXXXXXXXXXXXXXX"; var request = …

sudoコマンド でパスワードを聞かれなくする

どうしても sudo コマンドが必要だけど、何度も聞かれたくないという時、 ↓こちらのサイトを参考にして、 ↓以下のサイトのように設定すると、パスワードが聞かれなくなりました。 /etc/sudoers ファイル ( ← 書き方を誤るとsudo が使えなくなるので細心の注…

【Linux】よく使うコマンド

配列の設定 特殊な例: add-export(){ str=$(echo $1 | sed 's/=/ /') eval "array=($str)" mkdir -p ~/.export/$array[1]/ ... ... } 条件文 数字を足す

heteml の新サーバー【users】で cron を使用してみる

heteml サーバーで、cron を使って php を実行するのに時間がかかったので覚書き。 新しいサーバー(【user】で始まるサーバー)では、実行するPHPのパスが今までと少し違います。 PHPを直接実行する場合 */5 * * * * (5分毎に実行) /home/users/【以下フ…

【Python】Beautiful Soup を使って 特定の文字を抽出してみる

↓こちらのサイトを参考に、Beautiful Soup を使って metaタグのog:urlを抽出してみる import requests from bs4 import BeautifulSoup url = "【URLが入ります】" res = requests.get(url) soup = BeautifulSoup(res.text, "html.parser") og_url = soup.fin…

Google Cloud Vision で顔検出をしてみる

Google Cloud Vision で顔検出をしてみました。 PHPでコードを書いています。 putenv('GOOGLE_APPLICATION_CREDENTIALS='.dirname(__FILE__).'/XXXXXX-XXXXXXX.json'); require_once dirname(__FILE__) . '/vendor/autoload.php'; use Google\Cloud\Vision\V…

pip install でパーミッションエラー

pip install 〜 で、権限のエラーが出てきた時は、「--user」を付けるとよい pip install PACKAGE --user

【MAC】起動時にシェルスクリプトを実行する方法

MACパソコンを立ち上げた時に、自動的に シェルファイル(.sh)を実行させる方法はないかと探していたところ、 ↓こちらのサイトにある方法を見つけました。 [システム環境設定]の、[ユーザとグループ]で設定したいユーザを選んで表示し、そこの[ログイン項目…

【Selenium】Cookie を保持しておく方法

Selenium を使って、はてなブログへログインする方法に、 driver = webdriver.Chrome() を使う方法がありましたが、 同じ様にCookie を保持する方法として、以下のようなコードがありました。 opener = build_opener(HTTPCookieProcessor(CookieJar())) はて…

【Python】関数を呼び過ぎたらおこられた

けっこう長めのプログラムを走らせていたら、 Fatal Python error: Cannot recover from stack overflow. このようなエラーが出ました。 ↓こちらのサイトで調べてみると、スタックオーバーフロー、つまり関数呼びすぎの問題でした。 pythonでは再帰的に呼び…

【覚書】Amazon Dash ボタン を押して Google Home mini から音声出力する

前回、Amazon Dash ボタン を押した時のイベントを取得することができたので、 そのタイミングで、Google Home mini に喋らせてみました。 以前にもやった通り、Firebase 経由 で通信します。 app.js を以下のように記述します。 const dash_button = requir…

Amazon Dash ボタン を押して イベントを取得してみる

↓こちらのサイトを参考に、Dash Buttonを押したイベントを取得したいと思います。 npm install をする際、python 3.x を使っているとエラーが出るみたいです。 なので、python2.7 を使います。 npm install --python=python2.7 ↓こちらのサイトを参考に、Das…

【iOS】11から12へアップデート、12から11へダウングレードしてみた

iOS

iOS12のパブリックベータ版が出たということで、 ↓こちらのサイトを参考に、iOSを12にアップデートしました。 しかし、その後、iOS11がどうしても必要な状況になったので、 ↓こちらのサイトを参考に、iOSを11にダウングレードすることにしました。 …

【ffmpeg】動画の始まりが乱れているのを直してくれるMACアプリを作ってみる

ffmpeg を使って、動画の長さのトリミングをする時、 ↓こんな感じで、再エンコードなしで、切り出すと、 ffmpeg -ss 10 -i input.mp4 -c:v copy -c:a copy output.mp4 映像の始めが乱れてしまうことがあります。 これをキレイに始まるようにするためのmac ア…

【ffmpeg】動画の情報から再生時間を秒数で取得する

↓こちらのサイトを参考にして、動画の情報から再生時間を秒数で取得してみる。 ↓こちらのように、コードを書きました。 $ ffprobe -v error -i 【動画のファイルパス】-select_streams v:0 -show_entries stream=duration | sed '/^[/d' | sed s/duration=//…

【Python】よく使う関数

関数をよく忘れるので覚書き。 配列の逆順 l = [0, 1, 2, 3, 4] for i in (reversed(l)): print(i) ファイルの読み書き s = 'New file' with open(path_w, mode='w') as f: f.write(s) with open(path_w) as f: print(f.read()) URLエンコード urllib.parse.…

【Python】crontab で実行した時に、selenium のモジュールがインポートできなかったという話

前回、test.sh をMACのターミナルから実行するとうまくいくのに、crontab ではうまくいかないということがありました。 ↓こちらの方法で、エラーログを確認してみると、python で使用している「 import requests 」の部分でインポートができていないというエ…

【MAC】crontab でスクリプトが実行できない時はエラーログを見てみる

test.sh ファイルは実行できるのに、crontab を使って実行すると、動かない。 そんな時は、エラーをログに出力して確認するとよいです。 ↓こちらのサイトを参考にしました。 */30 * * * * /bin/sh /home/hoge/test.sh >>/tmp/analog.log 2>>/tmp/analog-err.…

【MAC】ターミナルからファイル名を一括で変更する

MACのターミナルを使って、ファイル名を一括で変更した時は、 ↓こちらのコマンドを使って変更します。 例:不可視ファイルの拡張子 .gz を消したい時。 find . -name "..gz" | sed -e 's/..gz//' | xargs -I{} mv {}.gz {} 不可視ファイルの名前を変更する時…

【Selenium + Python】Wordpressの全部の記事で特定の文字を置換する

Selenium + Python を使って、Wordpressの全部の記事で特定の文字を置換するというのを自動化しました。 # coding:utf-8 import re from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import…

【Selenium + Python】要素があるかの判別方法

Selenium と Python を使って、クラス名が、「test」 というアンカーの要素があるかを判別したい時がありました。 以下の方法が考えられます。 方法その1 eles = driver.find_elements_by_class_name("test") if len(eles) > 0: ele = eles[0] href = ele.g…

.htaccess を使って、HTTPS & WWW なしにリダイレクトする

.htaccess を使って、HTTPS & WWW なしにリダイレクトさせてみました。ドメイン名は適当です。 RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} www\.test\.jp RewriteRule ^(.*)$ http://test.jp/$1 [R=301,L] RewriteCond %{HTTPS} off Rewrite…

【MAC】sambaを使って、ファイルサーバーをマウントしてファイルをコピーしてみる

Mac

↓こちらのサイトを参考にして、 ターミナルのコマンドで、他のmacパソコンに、samba接続できるようにしてみました。 mount -t smbfs //ユーザー名:パスワード@ホスト/共有フォルダ マウントポイント 例:接続先の【共有フォルダ】に、接続先の【ユーザーアカ…

【Selenium + Python】複数のブラウザを開く方法

複数ブラウザを開く方法を探していたら、 ↓こちらのサイトが参考になりました。 ↓こちらの方法で、複数のブラウザが起動できました。 from selenium import webdriver from multiprocessing import Pool def browser(url): browser = webdriver.Chrome() bro…