自動化無しに生活無し

WEB開発関係を中心に備忘録をまとめています

  • Seleniumの基本操作のまとめ

    Seleniumは同じような処理が続くため、基本操作をまとめた。 ただ、forループとtry 文が続く冗長構成のため、後に修正する予定。 ソースコード from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait, Select from selenium.webdriver.support import expected_conditions from selenium.webdriver.common.by import By from selenium.common.exceptions import TimeoutException driver = webdriver.Firefox() wait = WebDriverWait(driver, 10) retry = 10 # 要素が見えているか def xpath_visible(xpath: str): return wait.until(excepted_conditions.visibility_of_element_located((By.XPATH, xpath))) def xpath_click(xpath: str): for _ in range(retry): try: elem = xpath_visible(xpath) elem.click() except: continue else: return raise TimeoutException(f"クリックできませんでした: {xpath}") def xpath_send_keys(xpath: str, keys: str): for _ in range(retry): try: elem = xpath_visible(xpath) elem.send_keys(keys) except: continue else: return raise Timeout ...
  • ffmpeg で すべてのmp4ファイルをまとめて加工するシェルスクリプト

    冒頭に広告や前置きなどがある動画を、まとめて加工したい場合。 高速で切り取りしたい場合 #! /bin/bash for file in *.mp4; do ffmpeg -i "$file" -ss 100 -c copy "${file}_output.mp4" done たまに、冒頭数秒が空白になってしまうようだ。 品質も維持したい場合 #! /bin/bash for file in *.mp4; do ffmpeg -i "$file" -ss 100 -c:v libx264 -c:a aac -strict experimental "${file}_output.mp4" done こちらはエンコードまでするため、冒頭の空白が除去できる。 解説 -i input.mp4 : 編集対象のファイルを指定する -ss 100 : 動画の開始時間を100秒とする -c copy : エンコードなしでコピーする(品質よりも高速化 ...
  • Ubuntuにnode.jsを手動でインストールする【tar.xz ファイルの解凍と】

    https://nodejs.org/ja Nodeの公式サイトにアクセスする。 最新版のファイルをDLして、 https://nodejs.org/dist/v22.14.0/node-v22.14.0-linux-x64.tar.xz ファイルを解凍する。 tar -xJf node-v22.14.0-linux-x64.tar.xz オプションの x は解凍。 J は xz圧縮形式の解凍 f はファイル指定。 cd node-v22.14.0-linux-x64 回答したファイルをすべて /usr/local/ に配置する。 sudo cp -r * /usr/local/ ...
  • Next.jsとTypeScriptで簡易掲示板をつくる

    Next.js を使えば、フロントからサーバーサイドまで一貫してJavaScript(TypeScript)でウェブアプリをつくる。 npx create-next-app startup-bbs このようにプロジェクトを作った。 cd startup-bbs npm run dev これでサーバーが起動すればプロジェクト作成はOK。 プロジェクトのディレクトリ構成 startup-bbs の中は以下のようになっている。 $ ls -al 合計 264 drwxrwxr-x 7 akagi akagi 4096 4月 4 10:40 . drwxrwxr-x 3 akagi akagi 4096 4月 4 10:39 .. drwxrwxr-x 8 akagi akagi 4096 4月 4 10:39 .git -rw-rw-r-- 1 akagi akagi 480 4月 4 10:39 .gitignore drwxrwxr-x 7 akagi akagi 4096 4月 4 10:40 .next -rw-rw-r-- 1 akagi akagi 1450 ...
  • UbuntuからWindows開発環境への移行作業

    慣れ親しんだUbuntuからWindowsへメインマシンを移行し、開発環境を構築する必要が出てきたので、ここにその手順をまとめておく。 VirtualBoxのインストール とりあえず、VirtualBoxさえあれば元のUbuntu環境をある程度の再現はできるので事前にインストールしておく。 https://www.oracle.com/jp/virtualization/technologies/vm/downloads/virtualbox-downloads.html Windows の場合、Visual C++を事前にインストールしておく必要がある https://1nux.com/archives/318 このページのX64 をDLしてインストールした ...
  • duコマンドでディレクトリのサイズ・容量を調べる【ファイルサーバーのストレージディスク整理に】

    ファイルサーバーなどを運用していると、ディスク容量が足りなくなることがよくある。 df -h --total でもストレージの残量を調べることはできるが、パーティション単位であり、どのファイルがどれぐらいの容量なのかがわからない。 こういうときはduコマンドを使って調べる。 du -sh ./* これでカレントディレクトリ内のすべてのファイルの容量を調べることができる。(hオプションで見やすく、sオプションで1階層のみ調べる) ...
  • Ubuntu 24.04 LTS での python仮想環境構築

    Ubuntu 24.04LTS では rootにPythonライブラリをインストールすることはできないようになっている。 $ sudo pip3 install --user virtualenv error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. If you wish to install a non-Debian packaged Python application, it may be easiest to use pipx install xyz, which will manage a virtual environment for you. Make sure you have pipx installed. See /usr/share/doc/python3.12/README.venv for more information. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. これはDebi ...
  • sedコマンドで指定した範囲の行だけ標準出力をする。xselと組み合わせて部分的にクリップボードにコピー

    sed -n "開始行,終了行p" ファイル名 とすることで、指定したファイルの開始行から終了行までのテキストをそのまま標準出力できる。 そのため、xselと組み合わせ、指定したファイルの指定した範囲の行を、ワンライナーでクリップボードにコピーできる。 sed -n "100,120p" ./bbs/views.py | clipcopy ...
  • 【USBブート】NVMe SSD とUSB3.2 Gen.2 の変換器でどこでもUbuntu

    家のメインPCの開発環境を、外のPCでも実現させたいことがある。 これまでは、外用のPCに開発環境をインストールさせる必要があったが、とっても手間がかかる。 その上、家のメインPCの環境が変わるたび、手動で外用のPCの設定を変えていかないといけない。 そこで、メインPCでOSが入っているNVMeSSDを取り出し、USB3.2 Gen.2 に変換する変換器を用意して、以降USBブートさせる。 今回はこちらを使った。 ロジ ...
  • ASP .NET Coreで簡易掲示板をつくる

    .NETを急いで覚える必要があるため、まずは簡易掲示板をつくる。 プロジェクトをつくる まず、.NETには、プロジェクトの構成として、MVC と Razor Pagesの2パターンがある。 PazorPagesは基本的なウェブページのみで構成されたシンプルなウェブアプリ。 一方、MVCはモデル・ビュー・コントローラがすべて揃った状態で作られる本格的なウェブアプリ。 今回は後者でつくる。 new mvc コマンドでプロジェクトをつくる。 ...