- 1. ChromeでHTMLソースコードを表示し、その情報をSeleniumの要素指定に利用する
- 2. Python3のYouTube Data Apiで動画を投稿/サムネイル追加/動画情報の編集/削除する
- 3. Pythonをはじめてみるメモ
- 4. Python でイラストの塗り残しを塗る
- 5. ChatGPT先生、Pythonがなぜ流行らないのか教えてください
- 6. Pythonで32bitfloatのwavファイルを再生する
- 7. Pythonでサーバーから返されたGMT(UTC)時間を日本時間に変換する
- 8. PythonAnyWhereでデプロイしようとしたらシークレットキーがないと言われた
- 9. Flet触ってみた
- 10. Pycharmのターミナル起動時出力される「このシステムではスクリプトの実行が無効になっている~」ログの解決法
- 11. Discord のリアクションに反応し通知する Bot
- 12. Flaskのlogに付加情報を出力する
- 13. ModuleNotFoundError: No module named ‘_ctypes’
- 14. PySimpleGUIでのイベント設定方法
- 15. 【AtCoder】ABC194E Mex Min Python解説
- 16. Pythonチートシート – 正規表現の使い方一覧
- 17. Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(材料の計算編)
- 18. アルファベットからなる連続IDを生成するPythonコード
- 19. Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(レシピ検索システム編)
- 20. Webスクレイパーを作ろう #1
ChromeでHTMLソースコードを表示し、その情報をSeleniumの要素指定に利用する
# はじめに
Seleniumでは、対象ページのHTMLソースコードの情報を利用して要素を指定し、クリックや文字入力などの操作を行います。
今回はChromeでHTMLソースコードを表示する方法と、表示したHTMLソースコードをSeleniumで利用する例を紹介いたします。# ChromeでHTMLソースコードを表示する
まず、HTMLソースコードを表示したいページを開いた状態で右クリックします。![コメント 2023-02-14 200549.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1743442/b2042cce-567b-f938-7563-839e70ac05e8.png)表示されたメニューから「検証」をクリックします。![コメント 2023-02-14 200550.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1743442/3c250442-d764-703d-7dc1-da1868bfcc3
Python3のYouTube Data Apiで動画を投稿/サムネイル追加/動画情報の編集/削除する
# やること
[YouTube Data Api](https://developers.google.com/youtube/v3/getting-started)を使用して、4つの作業を[Python3](https://www.python.org/downloads/)のプログラムで行ってみようと思います。
以下の順番で行います。
1. 動画のアップロード
1. サムネイルの追加
1. 動画情報の編集
1. 動画の削除# 環境
実行する環境を以下に示します。
| 項目 | バージョン |
|:-|:-|
| OS | macOS Ventura 13.1 |
| Python | 3.9.9 |# 手順
GCPの利用開始はされている前提とします。
## GCP関連
### プロジェクトの作成
[GCPコンソール](https://console.cloud.google.com/)にログインして、新しいプロジェクトを作成します。
Pythonをはじめてみるメモ必要に迫られて、数年ぶりのPythonにチャレンジ。
自分用のメモです。# 環境構築
PythonじゃなくてAnacondaをインストールするんだった。
ここからダウンロード↓↓↓
https://www.anaconda.com/products/distribution# 教科書
前に買ってたこれに沿ってはじめてみる。
https://www.shoeisha.co.jp/book/detail/9784798155067# パッケージの読み込み
基本のパッケージ
“`python
import numpy as np
import pandas as pd
“`# 使いそうなコマンドメモ
配列の作成は `np.array` サイズを確認するときは `配列名.shape`
“`python
sample_array_2 = np.array(
[[1,2,3,4,5],[6,7,8,9,10]])
sample_array_2.shape
“`データの読み込み `pd.read_csv(“ファイル名”)`
“`python
file_dat
Python でイラストの塗り残しを塗る
# はじめに
下図のようなイラストの塗り残しを塗る処理がペイントソフトでは一発で出来なさそうだったので、Python と OpenCV で実装してみます。例えばアクリルキーホルダーなどの白版を入稿する場合、塗り残しがあると品質に影響が出る危険性があるため、しっかりと処理していきます。
![image_paint_unpainted_area_01-original_比較.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78152/82c13c53-99a6-39fc-427b-48e849e105a8.png)
# 入力画像
これは意図的に作成した画像ですが、線画と塗りの境界に塗り残しがあり、背景の緑色が透けてしまっていることが分かります。
(※分かりやすいように背景を緑色にしています。)![image_paint_unpainted_area_01-original_x4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c
ChatGPT先生、Pythonがなぜ流行らないのか教えてください
# 回答
実際には、Pythonは非常に人気のあるプログラミング言語の1つであり、多くのプログラマーや企業によって広く採用されています。以下に、Pythonがなぜ流行らないと考えられるかをいくつかの理由とともに説明します。
* パフォーマンスの問題:Pythonは、C++やJavaなどの他のプログラミング言語に比べて実行速度が遅いとされています。そのため、高速な処理が必要なアプリケーションや、大規模なデータ処理が必要な場合には、Pythonは適していない場合があります。
* ライブラリの制限:Pythonは非常に豊富なライブラリを持っていますが、それらのライブラリが必要な機能がない場合もあります。そのため、Pythonが適していないアプリケーションもあります。
* セキュリティの問題:Pythonは動的型付け言語であるため、コードのエラーを検出するのが難しい場合があります。また、Pythonのライブラリのいくつかには、セキュリティ上の脆弱性がある場合があります。
* 教育や研究分野での使用:Pythonは、教育や研究分野で広く使用されていますが、産業界での使用には、他のプログ
Pythonで32bitfloatのwavファイルを再生する
# Pythonで32bitfloatのWAVファイルが再生したい
## 結果
結論から言うと出来ました!ただ動作確認したのはLinuxからのみです。## ハイレゾ音源を再生したい
ZOOM社が販売しているフィールドレコーダー及びマイクトラックシリーズは32bitfloat機と呼ばれており、ゲイン調整無しで録音できます。しかしながら、これらの機種が使用している、超ハイレゾフォーマット(192kHz、32bitフロートのWAVファイル)への対応状況は様々です。音楽用の編集環境であるDAWはほぼ対応しているので編集作業は問題ないのですが、これをPythonからでも再生したりしたいので今回調べてみました。
よく使われるPythonのサウンドモジュールは、16bitまでは再生できるのですが、32bitとなると再生できない場合が多かったです。
pydubやpyaudio等色々試してみましたが音量がおかしくなりほぼダメでしたw(そのうち直るかも)そんな中、紆余曲折しいろいろなモジュールを試してみた中で一番手軽に使える方法がわかったので記事にしました。
## sounddevice
Pythonでサーバーから返されたGMT(UTC)時間を日本時間に変換する
# はじめに
以前投稿した記事[「Twitterでの情報収集を RSS へ(一部)移行」](https://qiita.com/penguinprogrammer/items/ef7b9d8455d3bce5c0ed)のプログラムを改良してたのだが、RSSフィードのなかの日時の変換ではまった。
インターネットにもいろいろな情報があるにはあるのだが、Pythonのバージョンだったり、使うライブラリだったり、OS等によっていろいろあるらしく混乱した。自分の頭の整理のためにもまとめた。
# 環境
+ NanoPi NEO2[^NanoPiNEO2とは]
+ Armbian 22.11.4 (debian 11 (bullseye) ベース)
+ Python V3.9.2
+ dateutil v2.8.1
+ pytz 2022.7.1[^NanoPiNEO2とは]: 中国FriendlyELEC社のARM搭載SBC(シングルボードコンピュータ)。分かりやすく書けば「ラズパイ(Raspberry Pi)みたいなもの」
# やりたかったこと
やりたいことは単純で、サーバーから取得
PythonAnyWhereでデプロイしようとしたらシークレットキーがないと言われた
# PythonAnyWhereでデプロイしよう
PythonAnyWhereは無料でデプロイできます。(制限はあります)簡単に言うと、自分の作ったアプリを公開できるということです。## デプロイ方法
デプロイ方法は先駆者がいるのでそれを参考にしてください。
– [先駆者様リンク](https://qiita.com/t-shirayama/items/a8dc8c7946fdea00d8fa)ちなみに、私は先駆者通りにやったら
> $ pa_autoconfigure_django.py –python=3.9 https://github.com// .git この部分でエラーが出ました。
そんな「コマンド無いよ」ってエラーだったので、[この方](https://qiita.com/taungyeon/items/9398b4740842dcef821c)を参考にしたら通りました。## エラー確認
### 確認方法
先駆者を参考にしてもエラーが出る人もいると思います。私もそうでした。
Flet触ってみた
# Fletとは
https://flet.dev/GoogleのFlutterをベースにしたPython のフレームワークで、
公式のイントロダクションに書かれていますが、フロントエンドの開発経験が無くてもイケてるUIを作ることが簡単にでき、作成したアプリがクールかつプロフェッショナルに見えることを助けてくれるそうです。# 公式Docsは英語
TutorialsのToDoApp をなぞる形で実施していきます。
尚、公式のDocsは全て英語のため、私はChromeの拡張機能である「ほんやくコンニャク([DeepL翻訳](https://chrome.google.com/webstore/detail/deepl-translate-reading-w/cofdbpoegempjloogbagkncekinflcnj?hl=ja))」を使用しています。#### 環境
MacOS Big Sur 11.3.1
Python 3.10.2
flet 0.4.0まずはFletのインポート
“`
pip install flet
“`
ハローワールド
“`main.py
Pycharmのターミナル起動時出力される「このシステムではスクリプトの実行が無効になっている~」ログの解決法
# 環境条件
Windows 11 Home
pycharm# 状況
学習を進めていく途中でpycharmを知り、毎回Terminalを開くと出てくる
怪しげなログが気になったので調査してみた。
そこまで深く追及する気はなし。
治ったのなら、ひとまずOKの精神。
ちなみに出力されているのはこんなログ。
~~~
Import-Module : このシステムではスクリプトの実行が無効になっているため、ファイル~
~~~# 原因
PowerShellの “Excution Policy” の値が “Restricted”となっているためらしい。# 解決策
その “Excution Policy”の値を” RemoteSigned” に変更すればよいらしい。# 過程
①確認コマンド`Get-ExecutionPolicy`を実行。
~~~
PS C:\WINDOWS\system32> Get-ExecutionPolicy
Restricted
~~~②設定コマンド`set-executionpolicy remotesigned`を実行
~~~
PS
Discord のリアクションに反応し通知する Bot
## はじめに
Discord の返信や応答などに使われるリアクションに気づかないことがあり不便なため、リアクションに反応して通知してくれる Bot を作りました。ユーザがリアクションすると Bot がメッセージ主にメンションする流れになっています。なお、NITRO に入ることで使えるようになる他サーバのカスタム絵文字には対応していません。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1115291/fe8a42d0-05d7-07c4-02af-b917d8a3a328.png)## 環境
* Raspberry Pi 4 Model B
* CentOS Stream 8
* Python 3.11.0
* discord.py 2.1.0
* Repl.it
* Ubuntu 20.04.2 LTS
* Python 3.8.12
Flaskのlogに付加情報を出力する
# 訂正(一部ダメでした。。)
“`
record.clientip = request.remote_addr
“`上記を設定すると、特定条件(SQLAlchemyでSQLALCHEMY_ECHOを設定した場合など)下で下記エラーが発生してしまいました。
> RuntimeError: Working outside of request context.
appインスタンス生成前にrequestコンテキストにアクセスしてるからと思われます。
とりあえずメモ## まえがき
趣味の小物アプリでflaskを使った際に調べたこと。
nginxのログと照らし合わせるため、flaskのログにIPアドレスを出したいと思った。
(本当はrequest_id的なもので透過的に見れるといいんですが…)pythonのloggerではフォーマット指定の際、extraフィールドに任意の識別子を含めることが出来る。
extraパラメータは実際のログ出力時に毎回指定する事も出来るが、filtersを使ってミドルウェア的に挟むことが出来る。## 環境
> Python 3.10.10
ModuleNotFoundError: No module named ‘_ctypes’
### pyenvのインストールで、ModuleNotFoundError: No module named ‘_ctypes’が出た時。
“`
pyenv install 3.7.4
Downloading Python-3.7.4.tar.xz…
-> https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
Installing Python-3.7.4…BUILD FAILED (Ubuntu 18.04 using python-build 2.3.12-16-gc8daaa39)
Inspect or clean up the working tree at /tmp/python-build.20230214083324.13541
Results logged to /tmp/python-build.20230214083324.13541.logLast 10 log lines:
File “/tmp/tmplfm0akzd/pip-19.0.3-py2.py3-none-an
PySimpleGUIでのイベント設定方法
# はじめに
今回はPySimpleGUIでイベントを設定する方法についての記事になります。イベントのイメージとしては
「GUI上でボタンが押されたときにXXXXする。」みたいな動作があるとすると、
「ボタンが押される」っていうところがイベントです。PySimpleGUIでは、デフォルトでイベント設定されているものと、されていないものがあるので
その点はリファレンスなど参照の上、注意して実装していく必要があります。
(PySimpleGUIのドキュメント:https://www.pysimplegui.org/en/latest/)# デフォルトでイベント設定されているwidgetを使ったイベント設定
ここでは、文章を入力しボタンを押すと、文章の前後に***が装飾された文章がポップアップされるコードを紹介します。
*2つのウィジェットにkeyという引数で、識別子を与える
*ボタンはデフォルトでイベント設定されているので、ボタンが押されたときにeventに識別子が格納される
*入力系のwidgetに与えた値は values[設定した識別子] で確認できる
*ボタンは入力系のw
【AtCoder】ABC194E Mex Min Python解説
# はじめに
ABC 194 E 問題 Mex Min を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。
# E.Mex Min
[問題ページ](https://atcoder.jp/contests/abc194/tasks/abc194_e)
難易度 : 緑色 1088# 考察
## データ構造の選択
$mex$ : 区間に含まれない & 最小値
⇔ **$1 , 2 , …. , N$ の集合から区間に含まれる要素を削除して残った最小の値** と解釈できます。
区間はスライドするため、この区間に含まれない要素の集合を管理するためには**任意の要素の削除 および 追加** を高速で行えるデータ構造が必要になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3012066/f2370664-bdeb-3c4e-1303-8969f5bed2a0.png)
また、*
Pythonチートシート – 正規表現の使い方一覧
これまで、独習Pythonの内容を参考にチートシートを作成してきました。
今回の正規表現に関するチートシートで一区切りとし、次回からは「Pythonではじめるアルゴリズム入門」、”ML for beginners”の内容の学習記録を再利用性・汎用性の高い情報として纏めてみたいと思います。学習予定・記事を執筆予定の書籍・学習コースは以下の通りです。https://www.amazon.com/Python%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E5%85%A5%E9%96%80-%E4%BC%9D%E7%B5%B1%E7%9A%84%E3%81%AA%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E
Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(材料の計算編)
**このページは以下の続きです**
https://qiita.com/yuuauuy1/items/6d399f6903d9cf068169
今回は、
選択したレシピの材料を自分が作りたい人数分の量に変換
⇩
同じ材料があれば足し算
⇩
お買い物リストとして表示という部分を作っていきます。
**イメージはこちら**
選択したレシピの詳細を表示され、ユーザーが何人分の材料にするか入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/dde0dd6e-4201-6387-6177-dddec12ddb23.png)材料がユーザーが入力した人数分に変換されて、表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/da3514b2-7fc0-62dc-191f-056ec7447614.png)**買い物リスト作成アプリの概要はこちら*
アルファベットからなる連続IDを生成するPythonコード
### 概要
SpreadSheetのカラム名のように、A, B, C, …., Z, AA, AB, AC, ADと連続するIDを生成するコードを作成した### コード
なお今回は、Aを自然数における0と同じ様に扱うように設定した。つまり以下となる。
– 正) Y → Z → BA → BB
– 誤) Y → Z → AA → ABこれは、8 → 9 → 00ではなく、8 → 9 → 10であることに等しい
“`python
import stringZERO_CHAR = ‘A’
ONE_CHAR = ‘B’
LAST_CHAR = ‘Z’
CHAR_SERIES = string.ascii_uppercasedef reverse(_list):
return list(reversed(_list))def succ(char):
alphabet_to_num = dict(zip(CHAR_SERIES, [i for i in range(1, len(CHAR_SERIES) + 1)]))
num_to_alp
Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(レシピ検索システム編)
**この記事は以下の続きです**
https://qiita.com/yuuauuy1/items/3448c41c0b684db76edb
今回は、楽天レシピカテゴリ一覧API と 楽天レシピカテゴリ別ランキングAPIを使って
集めたレシピから検索 ➡ 買い物リストに入れたいレシピを選択する
という機能を作っていきます!**イメージは以下の通り**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/3a576d55-d8ac-d00b-65ff-53c031feda60.png)このように、検索ワードを入力したら、以下の検索結果が出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/0b5369d7-c86f-0732-9556-853cb5b1d4d7.png)
この中から、以下の様に indexを選択します。
![image.png](
Webスクレイパーを作ろう #1
# Pythonを使ってWebスクレイパーを作る
この記事では,Pythonを使ってWebスクレイパーを作ることを目的としています.
今回は,ココオルのつぶやきを集めるというスクレイパーを作成していきます.
2回に分けて解説していきます.# 環境準備
インストールするもの
– requests : Webページの情報を取得するのに使用
– BeautifulSoup : WebページのHTMLから必要な情報を抽出するのに使用“`
pip install beautiflsoup4
pip install requests
pip install html5lib
“`ライブラリのインポート
“`.py
from bs4 import BeautifulSoup
import requests
import html5lib
import time #収集の際に時間間隔をあけるために使用
“`# Webページの構造の確認
https://cocooru.com/mutters?page=1
を開き,アクセス後F12キーを押し,左上の矢印をクリック後,カーソル