chinda_fall_desu’s diary

竹内豊の日記

ヒューマンコンピューターインターフェースをもっと知りたいなー

Python

Arduino CLIでターミナルから書き込みを行う

下記の動画でArduinoCLIの使い方が分かったのでまとめる。www.youtube.com Latest releases: Release 0.11.0-rc1 · arduino/arduino-cli · GitHub ①~⑥の手順で書き込むを行える。 ①接続されているボードを確認。 > arduino-cli board list Port Type Board …

Pythonを使ってYoutube動画の出演者を当てる(東海オンエアで検証)

Youtube Data APIを使えば、Youtube動画の様々な情報を得られる。タイトルや概要欄などが分かる。Youtube Data APIについては以下の記事にまとめた。 chindafalldesu.hatenablog.com 上記のほかにコメント欄のコメントを取得することも可能である。 動画をそ…

東海オンエアの "臭い"動画をpythonを使って探してみた

東海オンエアの"臭い"動画をYoutube Data API と辞書を使って探してみた。流れは以下の通りである。 ①Youtube Data APIを使って、東海オンエアのチャンネルの動画タイトルを取得する ↓ ②動画タイトルを単語ごとに分割する ↓ ③辞書を使って動画タイトルを分析…

pythonと辞書で文章を分類する

まずは既存の辞書を使って、文章の分類を行い、その後自前の辞書を使って分類を行う。 辞書を使う前に文章を単語ごとに分割する必要がある。そのやり方は以下の記事にまとめた。 ①極性判定を行う Open Resources/Japanese Sentiment Polarity Dictionary - …

pythonとMeCabで文章を単語ごとに分割

MeCab: Yet Another Part-of-Speech and Morphological Analyzer Mecabを使えば形態素解析を行えるので、それを使って文章を単語ごとに分割する ①文章を単語ごとに分割する (ソースコード) import MeCab document="【りょうやん】みんなの「お前おかしいよ…

Youtubeの世界各国のトレンドをPythonで取得

Youtube Data APIを使って、世界各国のトレンドを見てみる。 Youtube Data APIの使い方は以下の記事にまとめてある。 chindafalldesu.hatenablog.com ・方針 https://www.googleapis.com/youtube/v3/videos? に続けて、欲しい動画に合わせてパラメータを指定…

Pythonを使って虫眼鏡さん編集の動画を探し出してみた

東海オンエアの動画から虫眼鏡さん編集の動画だけを集めたかったので、PythonとYoutube Data APIを使ってその動画を探し出してみた。 Youtube Data APIの使い方は下記の記事にまとめてある。 chindafalldesu.hatenablog.com 直近150作品から探した。 チャン…

pythonでYoutube動画のタイトルと概要欄を取得

YouTube Data API の概要 | Google Developers Youtube Data APIを使えば、Youtubeから様々な情報を取得できる。 以下にその例を示した。 ①Youtubeの動画のidを使って、その動画のタイトルを得る。 (ソースコード) import requests id='z9WHIkedhz8' apike…

pythonとParamikoでsshの通信を行う(sshサーバ作成)

paramikoモジュールを使ってpythonでsshサーバを立ててみる。 (1)sshサーバを立てる (適宜分割して示す) import socket import threading import paramiko host_key = paramiko.RSAKey(filename='test_rsa.key') 簡単のため配布されているデモファイル 'test…

pythonとtelnetで通信を行う

telnetとsshのどちらもほかのコンピュータと接続するための仕組みであるが、telnetは通信を暗号化しないためその内容を覗き見られる危険性がある。 サーバを自分で作って、wiresharkで通信を覗いてみる。 (1)telnetで通信を行う ・サーバ import socket impo…

ksnctfを使ってHTTP通信について学ぶ④(python・ksnctf-9)

前回、pythonでHTTPリクエストメッセージを作り、HTTPレスポンスメッセージを表示させた。 これを用いて、ksnctfの問9を解いてみる。 ksnctf - 9 Digest is secure! 認証を行ってflag.htmlにアクセスすればいいことまではわかっている。 Authorizationヘッダ…

ksnctfを使ってHTTP通信について学ぶ③(python・ksnctf-8)

HTTP通信をpythonで行う方法を学び、それを使って次回ksnctfの問9を解く。 ksnctf - 9 Digest is secure! ①HTTPリクエストメッセージをPythonで作る ・下記はksnctfの問8のHTTPリクエストメッセージ GET /~q8/ HTTP/1.1 Host: ctfq.sweetduet.info:10080 Con…

pythonでsocketを使って通信を行う③ (コマンドの実行)

今回は前回までのコードを再び改良し、コマンドを実行できるようにする。 準備 コマンドの実行にはsubprocessモジュールを用いる。 下記のようにして、コマンドを実行できる。 import subprocess com=subprocess.run("dir", stdout=subprocess.PIPE,stderr=s…

pythonでsocketを使って通信を行う② (ファイルの送受信)

今回は前回作ったコードを改良して、テキストファイルを送信できるようにする。ソースコード ・サーバ側 import socket bind_host="0.0.0.0" bind_port=50000 server=socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((bind_host, bind_port)…

pythonでsocketを使って通信を行う① (通信の確立)

サーバとクライアント間でお互いにデータを送りあえることを確認する。 これを通して、ソケット通信について学ぶ。 まずパソコン間で一文ずつ送りあえるアプリケーションを作った。 ソースコード ・サーバ側 import socket bind_host="0.0.0.0" bind_port=50…

pythonでWMIを使ってプロセスを監視する (Windows) ②

前回に引き続き、プロセスの監視を行う。 今回はメモ帳のプロセスの監視を行い、メモ帳が開かれたときにほかの自分が用意したファイルと入れ替え、そのファイルに内容が保存されるようにする。 こうすればpythonからメモ帳の保存を操作でき、ファイルの整理…

pythonでWMIを使ってプロセスを監視する (Windows) ①

Windowsが提供するWMIを使ってプロセスの監視を行ってみる。 下記のドキュメントを参考にした。 wmi Tutorial — WMI v1.4.9 documentation WMIモジュールをpipでインストールする。 pip install wmi プロセスの作成と終了を監視してみる。 ・ソースコード im…

pythonでpyHookを使ってキーロガーを作る (Windows) ⑤

今度はpyHookを使わずにWindowsAPIだけを使ってキーロガーを作れないか試してみる。WindowsAPIのGetAsyncKeyState()という関数を使ってみる。 GetAsyncKeyState function (winuser.h) - Win32 apps | Microsoft Docs 得られる仮想コードからどのキーが押され…

pythonでpyHookを使ってキーロガーを作る (Windows) ④

これまでの知識を使って、今度はpyHookでマウスをフックしてみる。マウスを左クリックしたときにクリックした座標を出力させる。 ・ソースコード from ctypes import * import pythoncom import pyHook import sys import time def Lclick(event): print("Lc…

pythonでpyHookを使ってキーロガーを作る (Windows) ③

前回に引き続き、下記のpyHookのリファレンスを見て、コードの意味を探る。 API Documentation hkm.HookKeyboard() 上記のコードの意味を調べる。 def HookKeyboard(self): cpyHook.cSetHook(HookConstants.WH_KEYBOARD_LL, self.KeyboardSwitch) self.keybo…

pythonでpyHookを使ってキーロガーを作る (Windows) ②

今回は下記のpyHookのリファレンスを見て、コードの意味を探る。 API Documentation # フックマネージャーの作成とコールバック関数の登録を行う hkm=pyHook.HookManager() hkm.KeyDown=Press 上記のコードの意味を調べる。 ① hkm=pyHook.HookManager() でHo…

pythonでpyHookを使ってキーロガーを作る (Windows)

キーロガーを作るためにpythonのライブラリであるPyHookを用いる。 PyHookはネイティブWindowsAPIのSetWindowsHookExを使っている。 まずPyHookをpipでインストールしようと思ったがうまくいかなかった。 > pip install pyhook ERROR: Could not find a vers…

pythonでハイライト部分(選択箇所)の読み上げを行う (Windows)

①pyautoguiでハイライト部分(選択箇所)をクリップボードに送る ②win32clipboardでクリップボードの中身を取り出す chindafalldesu.hatenablog.com ③winsoundでwavファイルを再生する chindafalldesu.hatenablog.com この手順で a という文字をハイライトし…

pythonでwavファイルを再生する (Windows)

Windowsではwinsoundモジュールを使えば、wavファイルを再生することができる。 PlaySound()メソッドで音声ファイルを再生できる。 winsound.PlaySound(sound, flags)soundにファイル名を格納する。 flagにwinsound.SND_FILENAMEを格納しsoundパラメータがwa…

pythonでハイライトされている部分を監視する (Windows)

pyautoguiライブラリのhotkey()メソッドを使えば、コピー機能を実現できる。 import pyautogui pyautogui.hotkey('copy', 'c') これに加えてクリップボードの監視を行えばハイライト部分を監視することができる。 ・ソースコード import pyautogui import wi…

pythonで自動入力を行う

PyAutoGUIを使えば、キーボードやマウスの自動操作を行える。まずは以下のようにインストールする。 pip install pyautogui①マウスをある地点まで移動させる ・ソースコード import pyautogui pyautogui.moveTo(10,10,1) ・実行結果 マウスカーソルがx=10, y…

pythonでクリップボードを監視する

timeモジュールを使えば、一定時間おきに処理をする、といったことができる。 import time time.sleep(1) こうすれば1秒おきに処理することができる。これとwin32clipboardモジュールを使って、クリップボードを監視する。 ・ソースコード import win32clipb…

pythonでクリップボードを扱う

win32clipboardモジュールを使ってクリップボードを扱う。 win32clipboardはpywin32パッケージに含まれているのでpipでpywin32をインストールする。 pip install pywin32・サンプルコード import win32clipboard win32clipboard.OpenClipboard() contents=wi…