Pythonのお勉強 Part70

■ このスレッドは過去ログ倉庫に格納されています
2023/03/04(土) 00:18:00.31ID:dUl31UkL0
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2023/07/26(水) 11:11:48.46ID:78KtOcma0
ChatGPTに聞けば一瞬で答えてくれるやろ
673デフォルトの名無しさん (ワッチョイ dfbd-h4sM)
垢版 |
2023/07/26(水) 12:16:00.18ID:NW3R3IJu0
この手の質問してくる人が>>671を見てパッと理解できるとは思えん
674デフォルトの名無しさん (ワッチョイ a734-ZCrp)
垢版 |
2023/07/26(水) 13:22:27.16ID:GIx/DHwN0
>show()する度に永続的な (=閉じるまで消えない) ウインドウを出しながら
って極論ブラクラみたいになるってこと? >>670
そのやり方はわからないので必要ないかもだがあえて別の方法を掲示
自分がやるなら画像に出力して、ビューワで表示するなり
簡易的なhttp-serverでも立ててwebアプリにしてしまう

画像出力するだけの方をチャッピーに聞いてそのまま実行したけどできた
https://ideone.com/pNXjgN
2023/07/26(水) 14:45:09.68ID:+VPKYlg4a
show()使わずにpause()してdraw()するんだよ
2023/07/27(木) 03:37:07.84ID:uhvAOvsF0
>>671,673
ええ。全くわかりません。
一時ファイルに書き出して最後に全部表示して消すとかで代替しようかと思います。

>>674
>> show()する度に永続的な (=閉じるまで消えない) ウインドウを出しながら
> って極論ブラクラみたいになるってこと?
そうです。
意外と難しいっぽいですね。

>>675
何も理解せず的外れなこと言ってるね。
2023/07/27(木) 04:05:01.27ID:uhvAOvsF0
いやよく見たら>>671も同じウインドウ内で次々と違うプロットを出す方法じゃん。
show()毎に前のウインドウを残したまま新しいウインドウを出すというのが今やりたいことです。
2023/07/27(木) 09:01:24.08ID:GoQM94Wca
>>675-677
馬鹿には無理
679デフォルトの名無しさん (ワントンキン MMbf-FGcY)
垢版 |
2023/07/27(木) 09:09:41.74ID:F3HgNoZlM
またこいつか
質問する側なのに偉そうな奴
2023/07/27(木) 09:23:17.34ID:HNphsCPDM
答えもしない外野が一番偉そうだよなw
681デフォルトの名無しさん (ワントンキン MMbf-FGcY)
垢版 |
2023/07/27(木) 09:41:18.81ID:F3HgNoZlM
>>680
じゃあ答えてあげてね
2023/07/27(木) 10:39:22.50ID:6rwcdyUp0
>>670
その文面をChatGPTに入れて聞けよ
2023/07/27(木) 10:55:48.95ID:KDpjz6pI0
>>678
うん。で、なんで>>675みたいな投稿しちゃった?
684デフォルトの名無しさん (ワッチョイ dfbd-h4sM)
垢版 |
2023/07/27(木) 12:27:31.67ID:klnm5ZEA0
マルチスレッド、マルチプロセス、同期、非同期、その辺もろもろの基礎知識ないとダメかと
急がば回れでまずはそこを学ぼう
2023/07/27(木) 21:41:08.59ID:alYzqiaL0
そうだよね
俺が間違ってたよ
画像のエンコードから学んでくる!
2023/07/27(木) 21:51:47.85ID:tOZTURiE0
質問者様の方が偉いんだよ
687デフォルトの名無しさん (ワッチョイ 7f46-ut6A)
垢版 |
2023/07/27(木) 23:57:37.27ID:WsZf6wiz0
まず「急がば廻れ」(Walk, Don't Run) を聴きましょう。
2023/07/28(金) 00:38:09.66ID:7q/zwki10
ChatGPT4-DefaultとChatGPT4-Code Interpreter
に依頼しまくれば基礎知識無くてもアプリできちゃうよ

根気よく会話して、話が噛み合わなくなったら
チャットを新規で始める
エラーが出たらそれをそのままChatGPTに伝える
2023/07/28(金) 00:40:24.18ID:7q/zwki10
ChatGPT4-Code Interpreter+Custom instructionsの回答

matplotlib.pyplot.show()を使用すると、
通常、図を表示するウィンドウが開き、
そのウィンドウが閉じられるまでスクリプトが停止します。
しかし、スクリプトを停止させずに新しいウィンドウで図を表示したい場合は、
次の方法を試してみると良いでしょう。

ion()を使用してインタラクティブモードをオンにします。
figure()を呼び出すことで新しい図を作成します。
グラフをプロットします。
draw()を使用して図を更新します。
2023/07/28(金) 00:44:32.99ID:7q/zwki10
以下は、この方法を使用して3つの異なる図を作成し、
それぞれの図を新しいウィンドウに表示する例です。

import matplotlib.pyplot as plt
import numpy as np

# インタラクティブモードをオンにする
plt.ion()

# 最初の図
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
plt.figure() # 新しい図を作成
plt.plot(x, y1)
plt.title("図1: sin(x)") # 日本語のタイトル
plt.draw() # 図を更新

# 2番目の図
y2 = np.cos(x)
plt.figure() # 新しい図を作成
plt.plot(x, y2)
plt.title("図2: cos(x)") # 日本語のタイトル
plt.draw() # 図を更新

# 3番目の図
y3 = np.sin(x) * np.cos(x)
plt.figure() # 新しい図を作成
plt.plot(x, y3)
plt.title("図3: sin(x) * cos(x)") # 日本語のタイトル
plt.draw() # 図を更新
2023/07/28(金) 00:47:48.47ID:7q/zwki10
ChatGPT4-Code Interpreter+Custom instructionsの回答(別のチャット)

matplotlibのデフォルトの挙動では、plt.show()を呼び出すと、
ウィンドウが表示される際にスクリプトの実行が停止します。
しかし、block=Falseを設定すると、
ウィンドウがすぐに閉じてしまうという問題が生じます。

この挙動を変更して、
show()を呼び出すたびに新しいウィンドウを生成しながらスクリプトを続行するには、
以下の手順を試してみることができます。

plt.figure()を使用して新しいフィギュアを明示的に作成します。
プロットやサブプロットを作成します。
plt.show(block=False)を使用してフィギュアを非ブロッキングモードで表示します。
plt.pause()を使用して少しの間ウィンドウを表示させます。
この時間は調整できますが、通常は短い時間(例えば0.1秒)で十分です。
2023/07/28(金) 00:48:15.50ID:7q/zwki10
以下は、この手順を使用して連続して2つのグラフを表示するサンプルコードです。

import matplotlib.pyplot as plt
import numpy as np

# データの生成
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 最初のグラフを表示
plt.figure() # 新しいフィギュアを作成
plt.plot(x, y1)
plt.title("y = sin(x)")
plt.show(block=False)
plt.pause(0.1) # ウィンドウを少しの間表示させる

# 二つ目のグラフを表示
plt.figure() # 新しいフィギュアを作成
plt.plot(x, y2)
plt.title("y = cos(x)")
plt.show(block=False)
plt.pause(0.1) # ウィンドウを少しの間表示させる
693デフォルトの名無しさん (スフッ Sdff-nfxy)
垢版 |
2023/07/28(金) 10:31:09.70ID:KkbicWNnd
判らないなら黙ってて下さい
ウザいだけです
2023/07/28(金) 11:59:26.34ID:pDBZ2PJA0
>>688-692
全く俺のやりたいことじゃない
2023/07/28(金) 12:40:41.62ID:viYsqOsS0
あほくさ
2023/07/29(土) 00:47:40.65ID:LDYSy/8b0
指摘できる人が来ると思ったけどダメだったか
2023/07/29(土) 02:29:49.24ID:bG9XHQk/0
Seleniumでwebdriver_manager当たり前のように使ってたけど、Chrome115問題でちょっと色々考えさせられた。
結局今後もGoogleがドライバーの場所変えたらエラー吐くわけだから対処するならchromeのアプデしないようにするべきか。
698デフォルトの名無しさん (ワッチョイ 3ebb-bWks)
垢版 |
2023/07/29(土) 11:12:06.08ID:CFjN6W2L0
手動でダウンロードしてきたらいいだけでは
2023/07/29(土) 12:39:48.66ID:S5qD2leK0
"""
Usage:
test.py [-t <test>]
"""
from docopt import docopt
args = docopt(__doc__)
print(args)

>test.py -t aaa
{'-t': False,
'<test>': None}

win11でdocoptが動いてない気がする
docopt 0.6.2
2023/07/29(土) 13:41:09.08ID:YEGyQG5k0
チンチンシュッシュッシュッしてる感じのスレッドか
2023/07/29(土) 14:12:11.80ID:S5qD2leK0
自決

>python test.py -t aaa
{'-t': True,
'<test>': 'aaa'}

win10と挙動が違う
2023/07/29(土) 14:26:43.60ID:S5qD2leK0
test.py で起動すると、open('file')はtest.pyと同じ場所から開く
python test.py だとカレントの場所が変わるのでエラーになる

コードに絶対パス埋め込むのも何だし、pyのある場所を取得するのも面倒だし
きっちりすると面倒が増える
2023/07/29(土) 14:43:38.34ID:S5qD2leK0
parent = Path(__file__).resolve().parent
parent.joinpath(file)

みたいにすれば相対で書ける
これは便利だと関数化ライブラリに登録すると、ライブラリのあるパスになってしまう
2023/07/29(土) 15:57:30.99ID:S5qD2leK0
別のフォルダのライブラリにある関数を呼び出して、
open(add_current_path(LOG_FILE))
みたいにできないもんか
2023/07/29(土) 19:30:37.27ID:E/MzBLso0
個人的に基本、pythonスクリプトで扱うファイルやディレクトリの絶対パスは
envファイルに書いてる
環境変数にしてもいいし、嫌ならenvファイルに直接アクセスさえ出来れば
出口が必ず絶対パスになるのでenvの編集だけ気にすればいいだけだし
2023/07/29(土) 19:57:56.17ID:S5qD2leK0
__file__ を渡したらchdirしてくれる関数を作って、おまじないの1行を追加しよう
707565 (ワッチョイ 7e33-CF7t)
垢版 |
2023/07/29(土) 22:21:52.96ID:NWGO3xeu0
venv使えばいいじゃん
2023/07/29(土) 22:35:15.06ID:S5qD2leK0
windowsでランチャーからスクリプト起動して処理させる使い方とvenvが合うと思えないんだよな
709565 (ワッチョイ 7e33-CF7t)
垢版 |
2023/07/30(日) 01:38:23.04ID:xSgp5A2Q0
windowsのランチャーって何?サービスと違って実行環境にvenv指定できないの?
2023/07/30(日) 02:18:03.51ID:lPGZsOOx0
def find_data_file(filename):
if getattr(sys, "frozen", False):
datadir = os.path.dirname(sys.executable)
else:
datadir = os.path.dirname(__file__)
return os.path.join(datadir, filename)
2023/07/30(日) 05:48:45.82ID:bULoPszl0
だからそれだと、その関数を登録したライブラリのあるパスを返すんだって
2023/07/30(日) 06:05:34.19ID:GM7u7fGAa
漏れは、デスクトップにショートカットを作って、

WSL2, Ubuntu-18.04, VSCode を起動して、
プロジェクトフォルダを開いているけど

リンク先
C:\Windows\System32\wsl.exe code .

作業フォルダ
\\wsl$\Ubuntu-18.04\home\<ユーザー名>\test\proj1
2023/07/30(日) 14:37:10.07ID:98nj2cg90
pythonで扱うファイルのパスってほぼ100%
設定ファイルだったり静的だったりするから
pythonファイル毎に相対パスで扱うのは罰ゲームでしかない
2023/07/30(日) 14:39:33.51ID:bULoPszl0
同じディレクトリにconfig.iniを置いて、とかむしろ常套手段なのでは
2023/07/30(日) 14:45:19.86ID:YLokddKe0
だからenvするのが常套なんじゃないの
env後は相対パスになりようがないから
pythonスクリプト内で相対か絶対か処理を気にしなくてよくなる
2023/07/30(日) 15:08:07.33ID:bULoPszl0
venvは殆ど使ったことない上に、使うと混乱するのでむしろ避けてる
ぐぐってもコンソールから使ってる例しか見つからないけど、
例えばexcelのマクロからさらに呼び出して、みたいな時にも使える?
2023/07/30(日) 17:23:26.95ID:kJu8CNGi0
そりゃ環境変数案件だな
718デフォルトの名無しさん (ワッチョイ 7e33-CF7t)
垢版 |
2023/07/30(日) 18:30:42.96ID:xSgp5A2Q0
>>715のenvとvenvは別もんよな?
2023/07/30(日) 20:26:24.18ID:xOWqpOI00
import traceback
print(traceback.extract_stack()[0].filename)
これで実行開始のファイル名が取れたりしない?
スタックトレースの1番最初を取ってくる感じだけど

試してないので、出来なかったらごめんなさい
720718 (ワッチョイ 7e33-CF7t)
垢版 |
2023/07/30(日) 20:37:36.60ID:xSgp5A2Q0
よな?違う?どうなん>>715
2023/07/30(日) 20:42:39.05ID:bULoPszl0
これならいけそう
2023/07/31(月) 01:38:57.99ID:Eecmz8Qn0
>>718
env: 普通は環境変数のことを言う
venv: 公式の仮想環境ツール
だからまったく関係ないよ
2023/07/31(月) 06:36:07.27ID:sj/Zsipy0
python.exeのある場所をカレントディレクトリにして立ち上がるのが間違ってるんだよな
そんな場所に用はない
何かのオプションを付けると、pyの場所をカレントにして立ち上がるとかになってるべき
本当はそれがデフォルトであって欲しい
2023/07/31(月) 07:13:10.38ID:hd73voNN0
w
725デフォルトの名無しさん (アウアウウー Sa1f-MRRk)
垢版 |
2023/07/31(月) 08:10:06.12ID:i86yzHNoa
>>723
実行環境無視しろってこと?
インストールしてるライブラリーも環境によって違うのに?
2023/07/31(月) 08:14:28.90ID:48kAXXAcM
ハイレベル過ぎてついて行けない
2023/07/31(月) 10:02:13.71ID:8wbRk2dYF
if __name__ == '__main__': で __main__ 描いている人は多いと思うけど
__file__ で自分の .py の位置取れるの知らない人は多い
728デフォルトの名無しさん (ワッチョイ 1746-ZTxv)
垢版 |
2023/07/31(月) 11:12:47.09ID:abrV6Hh30
>>727
> 自分の .py
とは何。
2023/07/31(月) 14:10:18.34ID:Gx4f02N00
ググらんの?
730デフォルトの名無しさん (ワッチョイ 1746-ziAf)
垢版 |
2023/07/31(月) 14:29:11.89ID:abrV6Hh30
>>702
ググって分かることなのか...

> python.exeのある場所をカレントディレクトリにして立ち上がる

とか、京人が妄言を交わしているようにし見えないけど、皆真摯に話しているので事実なんだろうね...
731デフォルトの名無しさん (スププ Sd8a-kvF/)
垢版 |
2023/07/31(月) 14:42:29.33ID:z7fzl/90d
眼の前に答えがあっても観えない
観ようともしないフシアナさんには
Pythonは無理
732デフォルトの名無しさん (ガックシ 063f-0KF6)
垢版 |
2023/07/31(月) 14:52:20.98ID:W5vBZByd6
>>716
使える
>>730
事実ではない
2023/07/31(月) 14:52:49.91ID:UKf8oRTI0
VSCODEでワークスペースに置いて作業すれば全て解決する話なのでは?
>test.py云々
2023/07/31(月) 21:15:58.91ID:+1m4O9oL0
>>716
venvなんてPythonの実行環境をvenvディレクトリ内にそのまま持ってるだけだから、そこのPython実行ファイルをフルパスで直接指定してやればいいだけ

普通はPythonにパスが通ってる状態で
python hoge.py
とかで実行するけど、それを
C:¥foo¥bar¥puroguramu¥venv¥bin¥python hoge.py
みたいにやる
2023/07/31(月) 21:24:17.33ID:Vr4eYj/H0
venvそういうのなのか
コンソールでコマンド打って、今からここだけバージョンなんとか、みたいに使うんだと思ってた
複数のバージョンを切り替えたい要求は特に無いので全部最新で構わない

venvとhoge.pyが自分の場所が判ることとは関係ないよね
736デフォルトの名無しさん (ワッチョイ 7e33-CF7t)
垢版 |
2023/07/31(月) 22:03:58.43ID:AftC5NAU0
python hoge.pyしたらインストール先のpython.exeが呼ばれるけど、venvをactivateした場合はpython hoge.pyしたらvenvのpython.exeが呼ばれる
Lib\site-packagesも同様
仮想環境っていうかインストールした環境と切り離して実行環境を構築できるのがvenv
venv環境のPythonバージョンはvenv作るときに実行したPythonのバージョンと同じになる
2023/08/01(火) 14:23:03.31ID:s61+iNuO0
<div class="form-input-wrapper" data-v-a0d39a18=""><input type="text" name="" value="" placeholder="メールアドレス" class="form-input" data-v-a0d39a18=""></div>
seleniumでこんなelementを取得してsend_keys()しても何も入らない
ぐぐって見つかる自動ログインの記事とhtmlの書き方が違う
何か別の方法が必要?
2023/08/01(火) 14:25:20.51ID:s61+iNuO0
と思ったらできた
> input を削ったのを忘れてた
2023/08/01(火) 17:28:09.70ID:s61+iNuO0
折角作ったのに、本番環境のwin7では動かなかった
2023/08/01(火) 20:03:07.92ID:s61+iNuO0
selenium4だったのが原因みたいで3にしたら動いた
開発用は普通にインストールしたのになんで3だったんだ?
741デフォルトの名無しさん (アウアウウー Sa1f-IPSQ)
垢版 |
2023/08/02(水) 09:26:45.38ID:4pI1Wfnva
日記は日記スレで
2023/08/02(水) 10:15:35.41ID:c5QFWyvkM
オナニー見せたい人なんだろうな
2023/08/03(木) 03:06:00.60ID:USexfWQAa
cwd(current working directory)の移動か?
VSCode の拡張機能・Code Runner なら、この設定をチェックしておく

Code-runner: File Directory As Cwd
Whether to use the directory of the file to be executed as the working directory.

そうすると実行時にcd で、そのファイルがある場所へカレントディレクトリを移動してから、
ruby "絶対パス/ファイル名.rb"
又は、ruby "絶対パス/tempCodeRunnerFile.rb"
で、そのファイルを実行する

tempCodeRunnerFile.rb は、Rubyのコード片をコピーした一時的なファイル

設定項目、executorMap には、多くの言語の実行コマンドが書いてある。
"code-runner.executorMap": {

"javascript": "node",

"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

"python": "python -u",
"ruby": "ruby",

pythonには、-u が付く
744デフォルトの名無しさん (ワッチョイ 5b02-mBaV)
垢版 |
2023/08/06(日) 16:25:19.98ID:yWag1CDn0
ゲームのBGMの中から効果音を抽出するpythonプログラムを作りたいんですが、いいライブラリとかありますか。
2023/08/06(日) 16:36:45.75ID:jdOXBstM0
Demucsとか?
2023/08/07(月) 01:58:40.68ID:VL80kvYz0
>>711
>>719
今更だけどはsys.argv[0]でも実行開始のファイル名取得できる
config.ini読みたい場合はそこにchdirしてから読めばいい
os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
exe化するとexeファイルの場所と__file__が別になったりするからこれ使う
2023/08/07(月) 02:20:10.84ID:VL80kvYz0
ちなみに今どきはSeleniumよりpyppeteerの方がいいんじゃね?
2023/08/07(月) 02:30:19.22ID:VL80kvYz0
むしろこれか、今度使ってみよう
https://github.com/microsoft/playwright-python
2023/08/07(月) 06:45:02.83ID:O0KH7AXh0
test.pyのある場所に移動して
python test.py
とすると、sys.argv[0]はtest.pyなんだよな
2023/08/07(月) 11:26:18.20ID:VL80kvYz0
test.pyの人はモジュール化した関数から実行開始ファイルの場所を取得して
設定ファイルとかを読みたかったみたいだけど
そもそもそういうのはmainがある場所でやって引数で渡すのが一般的
2023/08/09(水) 12:45:22.50ID:Dwekhx5a0
モミモミちんちん
2023/08/11(金) 08:50:33.66ID:G/NZQwIra
python勉強始めて1年半かかったけど
やっと機械学習動かせるようになった
2023/08/12(土) 12:23:33.25ID:20qyV/w+M
かっこいい
754デフォルトの名無しさん (ワッチョイ cebb-K2V0)
垢版 |
2023/08/13(日) 21:21:07.31ID:0E5SXPYI0
numpyがpypy3.9までしか対応してなくてつらい
お前ら早く3.10対応させて
2023/08/13(日) 21:41:15.56ID:CM3COsH1M
ライブラリ作者も大変だな
勝手に上がる本体バージョンに無償で対応させられて
2023/08/13(日) 21:54:12.08ID:nWSth0yh0
openで新規書き込みで開く時に、そのファイルを他のソフトで見てたりするとエラーになる
問答無用で書き換えるオプションとかある?
757デフォルトの名無しさん (ブーイモ MMb6-A2L1)
垢版 |
2023/08/14(月) 09:06:14.98ID:0zfUzHP0M
ファイルハンドルの一覧を取得して
OSにファイルハンドルのクローズしてもらう
2023/08/14(月) 09:19:45.83ID:ZA3ioCne0
世の中の大抵のソフトはそんなことにならずに、もう一度開くとちゃんと更新されてるんだよな
それらがいちいちそんな面倒なことをしてるとは思えなくて、pythonだけがひ弱に作られているとしか
2023/08/14(月) 09:24:08.81ID:r+a5TBmRM
「世の中の大抵のソフト」と言うオマエの物差しなんぞ誰も知らん
バッチやpower shellでも同じ結果になるだろう
2023/08/14(月) 09:27:09.98ID:ZA3ioCne0
簡単なスクリプトで試すと、特にエラーにならずに期待通りに書き込んだ
条件を似せても成功する
761デフォルトの名無しさん (ワッチョイ 1abd-Q0IG)
垢版 |
2023/08/14(月) 09:31:22.12ID:RuCw8Hbd0
もう少し具体的に書かないとアドバイスは出てこなさそう
2023/08/14(月) 09:35:28.32ID:YftetqPpM
「簡単なスクリプト」
2023/08/14(月) 14:09:38.85ID:ZA3ioCne0
seleniumでスクレイピングしながら取り込んだ情報をjsonに書き出す、
というのが実際にやってた処理で、そっちではエラーになるんだけど、
普通にjsonを書くだけでは問題が起きない

ファイルサイズが大きいからかな
2023/08/14(月) 14:15:36.24ID:ZA3ioCne0
OSError: [Errno 22] Invalid argument:
のエラーになるというのがよく判らない
大抵はパスの指定が間違ってるとかが原因だけど、普段はちゃんと動くのに
2023/08/14(月) 14:24:33.26ID:niAdk3sTM
じゃあ「普段」通りにしてないって事なんだろうな
自分で答えだしてるじゃん
766デフォルトの名無しさん (ワッチョイ 8b01-DXLR)
垢版 |
2023/08/14(月) 17:43:45.04ID:3nQHx1DG0
pythonでseleniumつかってブラウザ操作して自動ログインするときについて質問させていただきたいです。

画像を選ぶタイプの認証が存在する場合はどのようにして突破すればいいでしょうか?
一応試してみたことは、

・ログイン画面に遷移した後、ユーザ名、パスワードを自動入力後、
 をsleep()を使って10秒止めている間に対象の画像を手動クリックで選択する
 そのあと10秒経ったらシステムが自動でログインボタンを押下する

・ログイン画面に遷移した後、ユーザ名、パスワードを自動入力後、
 現在のURLを取得して文字列として変数に保存(oldUrl)
 2秒に一回回すwhile内でURLを改めて取得(newUrl)をoldUrlとnewUrlを比べて
 異なるURLになったらば(ログイン後の画面に遷移できたら)
 そのwhileループを抜けて続きのブラウザ操作の処理を実行する方法

 この2つ目の方法は、whileが回っている間に画像の選択とログインボタン押下を手動で行うものとしています。

この2点を試してみましたが、うまくログイン後の画面に遷移することができませんでした。
両方法ともログインボタンはアクティブ表示になっていて、
見た目としてはクリックができてないとかそういう感じではなさそうです。

画像選択など、特別な認証が必要ない別サイトでログインを試してみましたが、ログインが可能だったので、
大まかな方法は間違っていないのかなあと思っているのですが...

なにか解決方法などご存じの方いらっしゃいましたら、ご教示いただきたいです。。。
767デフォルトの名無しさん (ワッチョイ 4e31-mJLh)
垢版 |
2023/08/14(月) 19:28:02.18ID:M/R0A3us0
ハイレベルでついていけないと言いつつ煽り文書ばっかだな
嫉妬か?
2023/08/14(月) 21:45:37.58ID:2+cZA+P90
>>766
マウスの動き等で人間かCPUかの判断してるタイプの認証じゃね?
無駄な動きいれてみても同じかな
例えば同じ自動運転でもuwscみたいにマウスカーソルの制御もいれるとログイン出来るんじゃないだろうか
2023/08/14(月) 21:53:53.00ID:31y8BS1q0
そのサイトを見ないと分からんのに、目隠しで想像して目的を達するモノを作れとか鬼畜…
2023/08/14(月) 21:54:32.97ID:ZA3ioCne0
マウスの動きなんかサーバには伝わってない
判断するとしてもクリック位置とタイミングから
2023/08/14(月) 22:03:05.34ID:r+a5TBmRM
from 皮肉 import ハイレベル
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況