2022-01-01から1年間の記事一覧
docker-desktopが対応しているubuntuのバージョンは21.10か22.04。 私のノートPCのUbuntuのバージョンは20.04...ということで、Ubuntuのメジャーバージョンアップをしました。参考サイトはこちら itsfoss.com私の英語力でもわりとスラスラ読めるサイトでした…
今日はpythonのテストツールであるpytestを使ってみました。 テストツールは色々ありましたが、flaskのtest関連のページで紹介されていたのがpytestだったのでこれにしました。参考ページはこちら docs.pytest.orgtest_と名前のついたファイルや、Testから始…
今日はこちらを参考に、bulk_insertを実装してみました。 docs.python.org data = [ ("Monty Python Live at the Hollywood Bowl", 1982, 7.9), ("Monty Python's The Meaning of Life", 1983, 7.5), ("Monty Python's Life of Brian", 1979, 8.0), ] cur.ex…
今日はこちらのサイトを参考に、FlaskとSQLiteを連携してみました。 flask.palletsprojects.comポイント① DBのコネクションを使いわす & 必ず閉じる import sqlite3 from flask import g DATABASE = '/path/to/database.db' def get_db(): db = getattr(g, '…
こちらのサイトを参考に、はじめてSQLite3を使ってみました。 docs.python.orgデフォルトのモジュールに含まれているらしく、 pipでインストールすらいらないことに驚きました。テーブル作成とINSERT import sqlite3 con = sqlite3.connect('example.db') cu…
前回作成したコードには問題がありました。 それは、URLから取得した変数の値が、すべてstr型になってしまっていること。解決策はこちらにありました。 flask.palletsprojects.com from markupsafe import escape @app.route('/user/<username>') def show_user_profil</username>…
今回はFlaskを使って、簡単なAPIの雛形を作ってみました。 import json import uuid from flask import Flask from flask import request app = Flask(__name__) @app.route( "/disneyplus/tv_show/<series_name>/<season_num>/<episode_num>", methods=["POST"] ) def fetch_vtt_with_epicode_num(</episode_num></season_num></series_name>…
seleniumで字幕データをダウンロードすることができるようになったので、 後はこれをAPIで呼び出せるようにしたい。ということで前々から気になっていたFlaskを使ってみることにしました。 flask.palletsprojects.com評判通りとてもシンプル! 今までDjangoを…
DisneyPlusの動画を再生すると、ブラウザが裏側で .vtt という字幕ファイルをダウンロードします。このファイルを手動でダウンロードするには、開発者ツールを開いて、Networkタブを開いて、 .vtt のURLをコピーして、wgetする必要があります。なんとかこれ…
要素が画面上に表示されているのに、クリックすると ElementClickInterceptedException で失敗するときの解決方法が見つかりました。 それはexecute_script()。Before element = driver.find_element_by_css_selector('a.small-btn') element.click() After …
下記の通り、waitの処理を一本化してみました! def find_element(driver, *args, **kwargs): element = WebDriverWait(driver, timeout=120).until( lambda d: d.find_element(*args, **kwargs) ) return element def find_elements(driver, *args, **kwargs…
今日は初めてXpathの関数を使いました。 //button[starts-with(@data-testid, 'season-') and contains(@data-testid, '-button')] とても便利でよいのですが、ends-withもしくはmatchみたいな関数も欲しかったです。 starts-withとcontainsだけでもなんとか…
やっとログイン情報を使い回すことに成功しました。こんな簡単なコードで実装できました。 options = webdriver.ChromeOptions() options.add_argument("user-data-dir=./profile") driver = webdriver.Chrome(options=options) これでChromeを立ち上げるた…
一度ログインしたときの認証情報をそのまま使う方法が、Cookie以外にないかを調べていると、 プロファイルに関する記事が何個か見つかりました。これを使えば、普段Chromeを使っているときと同様、 一度訪れたサイトの情報を保存してくれるそうな。これがい…
社内勉強会の準備として、今日はZabbixサーバーを構築してみました。久しぶりにCentOSを触りました。 dnfとか言う謎のコマンドが導入されてて少し手こずりました。Zabbixの公式インストール手順も、MySQLがすでにインストールされているのが前提になっていた…
会社の勉強会で発表するために、Azureを触ってみました。会社のPCでデモをするのに、仮想マシンに安全に接続する方法が必要だったので、 VPN Gatewayを使ってみることにしました。公式ドキュメント通りに手順を進めれば結構簡単に設定できました! docs.micro…
DisneyPlusのCookieを使い回せない問題。 これはDisneyPlusのクローリング対策なのでは...?と思い始めました。結局今日もCookieの使い回しは実装できなかったのですが、 新しいことを1つ学びました。それはpickle。 pythonのオブジェクトをバイナリファイル…
Selenium最初の壁にぶち当たりました。Cookieを使いまわしてログイン処理を省くことができない..ログインするところまでは自動化できたのですが、 その時のCookieを保存しておいて、次回サイトにアクセスするときにそのCookieを使うことができません。私が想…
要素を見つけるときにidもnameも使えない状況に陥りました。そんなときに使えるのがXPATH。 www.selenium.dev今回は button要素の data-testid という属性を検索したかったので、こんな記述になります //button[@data-testid='password-continue-loginXPATH…
TVサーバーのライブ視聴時の画面のカクつきがひどいので、 ネットワークの帯域を調べてみました。使用したのは iperf3 ノートPCとRaspberryPiの両方にインストールして、 ノートPC(Client)→RaspberryPi(Server)の方向で通信して帯域を測ってみました。 $ sud…
Elementが作成されるのを待たずにElementを探しに行ってしまい、NoSuchElementExceptionが出てしまう問題を解決するために、ExplicitWaitの勉強をしました。www.selenium.dev他にもImplicitWaitとFluentWaitという方法がありますが、ExplicitWaitが使えれば…
Amazonから届くのを楽しみにしていたこちらが、ついに届きました。 www.amazon.co.jp早速取り付けて、その冷却性能を見てみました。 BeforeAfterすごい..! 一気に半分くらいまで温度が下がりました!!しかし... 画面のカクつきは治りませんでした... 温度の問…
英語の字幕データを集めてDBを作れば英語の勉強も捗ると思い、 今日から少しずつ作っていくことにしました。字幕データはNetflixやDisneyplusから、Seleniumを使ってとっていこうと思います。公式サイトを見ながらゆっくり進めていくことにしました。 www.se…
先日構築したTVサーバーで、番組再生時に画面がカクつく問題が発生しています。 htop コマンドで調べたところ、ffmpegのCPU使用率が高すぎて処理が遅くなっていることがわかりました。ライブ視聴が難なくできるくらいのパフォーマンスを出したいので、 これ…
RaspberryPiにインストールしたUbuntusServerの上にTVサーバーを構築しました。 お手軽とうわさのDockerを使いました。Dockerはほんとにお手軽でした! ミスのしようが無いくらいに。MirakurunサーバーのクライアントにはEPG-Stationを選びました。 こっちの…
SSDにUbuntuServerのイメージを書き込むところから再開。 書き込めたら、RaspberryPiからSDカードを抜いて、USBにSSDを挿して起動。 やることはこれだけでした。起動に成功! 案外簡単だった!あとはwifi接続をして今日の作業は完了。 netplanの設定のgateway4…
■概要 RaspberryPiの動きが微妙にカクついていたので、ディスクをSDカード→SSD(USB)に変えてみたくなりました。手順は、検索して最初にヒットしたこちらのサイトに従うことにしました。 Boot Ubuntu Server 21.10 from External USB SSD on Raspberry Pi4 Ub…
【感想】念願のRaspberryPi4を手に入れ、UbuntuServer20.04をインストールして色々遊ぼうと思っていたところ、wifi接続の作業に2時間も悪戦苦闘しました。激戦の末たどり着いた解決方法は、Wifiルーターの再起動...やっと繋がった!! という嬉しさと、そんな…