【まず1嫁】くだすれPython(超初心者用) その53

■ このスレッドは過去ログ倉庫に格納されています
2021/03/16(火) 07:19:44.36ID:PfTIXkDh
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合は、
  表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★
5chの仕様【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】のため、どうにもなりましぇん。
↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 くだすれPython(超初心者用) その52【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1610137345/

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
2021/03/25(木) 20:55:15.36ID:2VOe+7hV
>>137
プログラミングの勉強になると思ってプレイしてました(笑)

あんな感じでプログラミングの勉強になるアプリとかゲームはありますかね?
2021/03/25(木) 21:49:59.94ID:KmpgWBAt
>>138
カルネージハートですね。
https://ja.m.wikipedia.org/wiki/%E3%82%AB%E3%83%AB%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%8F%E3%83%BC%E3%83%88
本家はもう10年前だけど外人製のフォロワーゲームとか探せばある
2021/03/26(金) 00:00:46.47ID:0ubO4ros
こういうやつか
https://www.gamespark.jp/article/2019/06/08/90338.html
> その後、実際に本作の開発を開始する際、ゲームプレイの面でリサーチをし、2つのシステムがとても気に入りました。
> 『ファイナルファンタジーXII』のガンビットシステムと『カルネージハート』のプログラミングインターフェースです。
> 私の本作における目標は、ガンビットのシンプルさと『カルネージハート』の戦術的奥深さの間の妥協点を見つけることでした。
2021/03/26(金) 19:02:57.03ID:v+/VCeWZ
>>127
金盾へのハッキングが面白くて、熱い
2021/03/26(金) 22:05:49.82ID:ndqtKa4D
>>141
そんなもんひたすらそっち系検索エンジンに特定のクエリ送り続けるだけやん
143デフォルトの名無しさん
垢版 |
2021/03/27(土) 11:59:14.14ID:tPWOTzAz
以下の辞書内包表記がエラーになります。
どうすればいいでしょうか?

import math
def normalize_coefficients(n, D):
return {(s, i):0.5*math.sqrt(n/s) if s != 0 else (s, i):math.sqrt(n) for (s, i) in D.keys()}
2021/03/27(土) 14:43:44.30ID:cpUHfD3R
エラーに間違ってるとこを示す矢印っぽいのが出てるでしょ
elseの後の`(s, i):`を削除して
145デフォルトの名無しさん
垢版 |
2021/03/27(土) 16:38:19.00ID:56gcLvkb
>>143
この手の質問はエラーメッセージと、本当はどんな動作を期待していたのか書いた方が答えてもらいやすい
2021/03/27(土) 19:35:40.12ID:sxUgZiKM
面倒な質問だと「窓から投げ捨てろ」と言う
2021/03/28(日) 02:30:55.99ID:AdvYUXyR
普通Dとnに何入れたらそうなったかくらいは書くだろ。
2021/03/28(日) 02:59:44.68ID:XX3dha92
urllib.parse.urlencode()で辞書を渡す場合、値にリストを含む場合の変換結果について教えてください。

例えば以下のようなリスト値を含む辞書データを与えた場合
{'a': [123,456]}
a=[123, 456]
という風にリスト内の値の区切りに空白が入った文字列としてエンコードされてしまいます。(123, と456の間)
(実際には記号や空白は%xxや+でエンコードされます)

a=[123,456]
のようにリスト内の値の区切りに空白を含めない文字列としてエンコードする方法はありますか?
2021/03/28(日) 04:32:58.94ID:3NgZ3Zxf
bytesでないdictのvalueはstrが呼ばれてstrにされる実装だから単純な方法では無理やな
https://github.com/python/cpython/blob/master/Lib/urllib/parse.py#L950

* 文字列化したlistの空白を消すquote_plusを作ってurlencodeのquote_viaに渡す
* dictのvalueにlistでなく文字列を渡す
* dictのvalueに渡すlistを、空白が入らないように文字列化する__str__を実装したクラスでラップする

どれかをどうぞ
2021/03/28(日) 06:10:39.39ID:XX3dha92
ありがとうございます。
やはり単純にはいかないんですね。
素直にリストではなく、初めから文字列で格納するようにします。
2021/03/28(日) 20:49:47.97ID:JC3QvQ/6
すっごいしょーもない質問なんですけど
0から始めるならおすすめの初心者向けサイトってありますか?
2021/03/28(日) 21:02:38.12ID:2n/niDAm
うちProgateでhtmlとかPythonとか自分が使いそうなやつ1ヶ月くらいやってあとはひたすらググって必要なやつだけかいつばんでいった
phpとかもやったけど結局使ってない
2021/03/28(日) 21:45:28.92ID:AdvYUXyR
サイト見てやるくらいならオライリーの初めてのpythonでも買って全部読む方がよっぽどマシだぞ
2021/03/28(日) 21:58:48.98ID:zZ3ybzIq
いきなり本なんか買ったって続かないよ
サイトから入るのはいいと思うけどね
2021/03/28(日) 22:01:08.75ID:Wfs5bmxs
俺はやりたいことが決まってからpythonやりだしたのと
別の言語はできたから一通りfizzbuzzとか書いてから
必要なライブラリ検索して作るっていう工程を繰り返したけど
いきなり無からやり出すんだったら本あったほうがいいと思う
2021/03/29(月) 01:58:30.08ID:WE/JZmPT
ありがとうございます。本買うことにします。
2021/03/29(月) 12:17:33.31ID:np5gG6ll
初めてのPythonはGoogleブックスで150ページぐらい読めるから、買う前に目を通してみて解るなら購入したらいいよ
俺にはとてもゼロから始める人に勧めるものとは思えない
158デフォルトの名無しさん
垢版 |
2021/03/30(火) 16:15:46.49ID:/x/CBTP/
Python で連鎖律を解きたいです。
微分には「SymPy」といったライブラリが適していると、解説サイトにありました。

y = u^3
u = x^3 + 2x^2 + 3x + 4

この y の微分を求めたいです。
上記の答えは、

3(x^3 + 2x^2 + 3x + 4)^2 (3x^2 + 4x + 3)

になるそうなんですが、うまくゆきません。
以下に試したコードを書きます。

diff((x**3 + 2*x**2 + 3*x + 4)**3)
→ ×

a = diff((u**3) * (x**3 + 2*x**2 + 3*x + 4), u, x)
a.subs(u, x**3 + 2*x**2 + 3*x + 4)
→ ×

どなたかお知恵をお貸しください。よろしくお願いします<(_ _)>
2021/03/30(火) 17:26:28.39ID:jfNjkEti
以下を順番に実行したら動いたよ
import sympy
x = sympy.Symbol('x')
sympy.diff((x**3 + 2 * ...略) ** 3)
160デフォルトの名無しさん
垢版 |
2021/03/30(火) 17:32:11.53ID:2VQXF/Ug
u, x, y = sympy.Symbols('u x y')
161158
垢版 |
2021/03/30(火) 22:28:49.03ID:/x/CBTP/
>>159
>>160
どうもありがとうございます、無事計算できました!
感謝です!<(_ _)>
2021/03/31(水) 10:44:14.63ID:TYV185HC
int型のように振る舞う
小数を加減算すると四捨五入した整数を加減算する
足し算して最大値を超える場合最大値になる
引き算してマイナスになる場合0になる

という独自の型を作りたいのですがどうすればいいのでしょうか?
2021/03/31(水) 10:54:12.36ID:1+1U+2+S
車輪の発明の仕方は知らんのぉ
2021/03/31(水) 11:58:37.41ID:cYN7hqzq
まぁaddとかを自力で実装すればできないでもないが…
165デフォルトの名無しさん
垢版 |
2021/03/31(水) 12:28:49.77ID:qt7DVuKB
int継承して四則演算をオーバーライド
166デフォルトの名無しさん
垢版 |
2021/03/31(水) 12:31:16.92ID:33niRBMd
>>162
>という独自の型を作りたいのですがどうすればいいのでしょうか?

作ればいいじゃない
2021/03/31(水) 12:38:38.39ID:1K4SHGhs
>>162
自分で試した内容と、どこで詰まってるのかくらいは書けよ
2021/03/31(水) 13:27:07.97ID:TYV185HC
>>165,167
そういうことをやればいいということはなんとなくわかってるんです
「python int 継承」で検索もしました
でも検索でヒットする記事じゃやり方がわからないので
それの具体的なやり方をコードで教えてほしいわけです

あと具体的にやりたいのはこういうことです
a = n(5,100) #実体化のときに初期値と最大値を設定
print(a) #5と表示
a += 5.1
print(a) #10と表示
a += 999
print(a) #100と表示
2021/03/31(水) 15:25:15.94ID:Vc5hrOQS
>>168
class Foo(int):
__def __add__(self, other):
____return self.__class__(int(self) + other)

続きは「operator overloading in python」で検索
170デフォルトの名無しさん
垢版 |
2021/03/31(水) 16:04:49.92ID:qDb8EHC5
>>169
>>168は検索したってわからないって言ってるだろ
ちゃんと全部書いてやれよ
2021/03/31(水) 17:40:42.81ID:kvIfnSeV
なんとなくわかってたんだから
>>169見れば後は分かるだろ

逆に何が分からないのかが分からないからそれを教えてくれよ
2021/03/31(水) 18:37:46.05ID:TYV185HC
仕様は完璧には理解できなかったけど
とりあえず想定通り動いてくれるものができました
https://pastebin.com/DS9C8zWT
pass:del(削除用パスだと思ったら閲覧用パスだった)

>>169 他回答してくれた皆さん
ありがとうございました
2021/03/31(水) 23:49:18.64ID:Vc5hrOQS
>>172
別にいいのかもしれないけど
n(“string”)とかn(10.12)とか比較演算とか
intを継承すれば発生しない問題をたくさん抱えてるよ
2021/04/01(木) 15:18:01.88ID:9j9uUZcG
初pythonです。
クラス変数なるものを知り、こりゃすべて__init__の中でインスタンス変数にしないと危険だなと思いました。
しかし世のサンプルを見ると、ほとんどがクラス変数となっています。
Webサービスのジョブのクラスのコードでもクラス変数になっていて、これでちゃんと動くのか不安に思っています。
サンプルは自分で考えてスコープ変えろよって言うのが前提なのでしょうか。
初心者過ぎてばかげた質問かもしれませんが、ご意見いただけたらと思います。
2021/04/01(木) 16:27:57.76ID:z+kCaEcE
>>174
必要なものしかクラス変数にはなってないと思うよ。例を見せて
2021/04/01(木) 19:17:31.45ID:sxNAMQCC
インスタンス変数によるクラス変数の隠蔽について質問です
以下のコードにおいて、出力が21,19,0となるのは、
21や19の代入時にインスタンス変数ageが生成されて、クラス変数のageが隠蔽されたからという理解であってますか?

class person():
  age = 0

taro = person()
taro.age = 21
jiro = person()
jiro.age = 19

print("{p.age}, ".format(p=taro))
print("{p.age}, ".format(p=jiro))
print("{p.age}, ".format(p=person))
177デフォルトの名無しさん
垢版 |
2021/04/01(木) 20:11:50.07ID:qWLYbtkQ
>>175
正確にはサンプルと言うよりはチュートリアル系のページです。
個人のページを書くのは気が引けるので、例えば、以下のItemクラスなどです。Webサービスなので同時に呼ばれることは多々あると思うのですが。
https://fastapi.tiangolo.com/ja/tutorial/body/
2021/04/01(木) 20:14:55.23ID:1gUayPkm
>>176
同じ名前があったらインスタンスのを使う
隠蔽っていうか
person.ageでアクセスできないか
2021/04/01(木) 20:23:36.06ID:1gUayPkm
>>177
pythonだという証拠は
2021/04/01(木) 20:34:56.02ID:9j9uUZcG
>>179
どういう意味ですか?
2021/04/01(木) 21:13:14.81ID:GHLAqcRW
pydanticだからじゃん
2021/04/01(木) 21:30:22.18ID:9j9uUZcG
>>181
なるほど、ヘルプ読んで理解しました
ありがとうございます!
2021/04/01(木) 21:56:15.69ID:6NDtmvbq
実装方法は違うけど考え方はデータクラスと同じで内部的にインスタンス変数として設定される
2021/04/01(木) 23:38:19.42ID:9j9uUZcG
>>183
ありがとうございます。
さらには__init__をオーバーライドしないように気をつけなきゃいけないんですかね
pythonチャレンジ二日目でちょっとくじけそうです。
今回のことなんかここで聞かなきゃ回答にいけつけなかったし
2021/04/02(金) 01:09:36.62ID:xburNgtP
tkinterでメッセージボックス出すときタイトル引数が長くてメッセージ引数が短いと
タイトルバーが省略表示されてしまうんだけど、全部表示するにはどうしたらいいですか?

tkmb.showinfo(validate_inputs_directorypath, "なし")
みたいな場合です
2021/04/02(金) 06:04:51.09ID:Lx2Hy5gS
>>185
そんなクソなタイトルつけんなwって話なんじゃ・・・
187デフォルトの名無しさん
垢版 |
2021/04/02(金) 22:50:57.48ID:kA91Mkww
pythonはクラス変数がありますが、インスタンス参照がない状態のガベージコレクションはどうなっているのでしょうか?
2021/04/02(金) 23:37:06.33ID:Lx2Hy5gS
・・・わだいるーぷしてね?
2021/04/03(土) 00:49:02.53ID:IxwztQHk
ガベコレ
2021/04/03(土) 10:00:16.00ID:trgltwrH
今まで仕事で必死こいてやってたあれこれが、全部秒かからんで終わる
大したPC使ってないのにどんだけすごいんよ。この子

本当やろうと思えばなんでもできんね。これ
2021/04/03(土) 10:03:56.14ID:6fy7iE1I
スクリプト言語はどれもそんなかんじやで!
これからもおしあわせに〜
2021/04/03(土) 16:53:33.46ID:47kYGnI+
すみません、
例えばpngの自動文字起こしアプリをPythonで作った場合、そのアプリを別PCでも使いたい場合、そっちでもpipしなきゃいけないんですか?
配布する場合いろんな部署に配布することになるから大変なんですけど
2021/04/03(土) 17:11:35.11ID:6fy7iE1I
>>192
OSと利用比率くらい書いてけ
+そいつらのPCリテラシー度合いにも多少は左右される
2021/04/03(土) 17:21:17.78ID:ClFC++3t
>>192
そんな事聞くレベルなら配布すんな。メンテのたびに過労死するぞ
2021/04/03(土) 17:37:22.20ID:6fy7iE1I
>>194
あああー!
そういえばそうだった!!!>メンテするとチヌ
2021/04/03(土) 17:44:40.80ID:EzmFJzRe
exeに固めるか、webアプリにするか、lambdaにでも置いておくか
2021/04/03(土) 17:52:00.45ID:DP/gaUVz
AWSかGCPだな
Pythonで作ったものを非開発者に配布するのは本当に地獄を見るから絶対にやめたほうがいい
2021/04/03(土) 18:59:42.70ID:nkSIG8qO
pipを使えないような人達に配布するならインストーラかインストールスクリプトを書く
特定のユーザーがログイン時にインストールスクリプトを自動実行するような仕組みを使えば配布は簡単
Webアプリに比べれば環境が多様だから台数が増えればサポートコストは増える
2021/04/03(土) 19:03:31.16ID:6fy7iE1I
>>198
そのスクリプトなりインストーラ+そのアプデしか走らせられない安全な環境を作るときにチヌわ
2021/04/03(土) 19:20:47.90ID:FpevJVBv
最悪pythonディレクトリ丸ごと渡せばいい
python embedというスクラッチがあるから
それに必要なの足していけばいいんじゃ
2021/04/03(土) 19:57:20.93ID:I8FEebuy
' aa a '.strip().strip('aaa')
#' '

おそらく'aa a'の中の半角スペースだけ残るのですがなぜですか
'aaa'には当てはまらないから無視して
'aa a'が残るならわかるんですが
2021/04/03(土) 20:07:12.42ID:gHKAEbqs
stripのリファレンスをよく読んでごらん
引数に指定するのは「文字列」ではなく「文字の集合」だ
この違いが分かるかね
2021/04/03(土) 20:08:19.64ID:gHKAEbqs
逆に192はpipしなくていいならどうできると思ってたのか気になる
2021/04/03(土) 20:47:10.86ID:bgVKOhSQ
ピッピピッピ
2021/04/03(土) 21:03:05.22ID:wGJ5LVi5
>>202
なんでそんなに上から目線なのかね
2021/04/03(土) 22:52:04.06ID:6fy7iE1I
>205横だが
大二病かプ二病かその両方なんだろう
2021/04/04(日) 02:51:57.29ID:vLoSd5kv
>>192です
>>196
exeかwebアプリにして配布するのが基本なんですね
あざます
それなら簡単そうですね
2021/04/04(日) 05:31:24.72ID:DYzzbk5J
>>207
exeもファイルアップローダもどっちも個人的には難しい部類なんだけど、簡単っって言える人が羨ましい
2021/04/04(日) 07:37:41.99ID:/F7LAei5
>>208
うpろだはWebアプリちゃうぞ!
べんきょうしる!!!
2021/04/04(日) 07:39:01.67ID:ciXsbyqc
yolov5 をexe化しようとして失敗したあるよ
2021/04/04(日) 07:41:07.08ID:/F7LAei5
>>209補足
ベン図をかくと
Webアプリの方がはるかにでっかい。

うpろだはWebアプリの中の一点にすぎない。

違いが判らないマジ超初心者のうちは
Pythonよりずっとずっとさきに
つぶしのきくPC用語をもっといっぱいべんきょうしる!
2021/04/04(日) 07:42:27.14ID:DYzzbk5J
>>209
「pngの自動文字起こしアプリ」でファイルアップロードしないの?
2021/04/04(日) 07:52:18.84ID:/F7LAei5
>>212
社内専用かつ中身がexeなzipであっても置いてておkでまともなうpろだ持ってる会社はすげえ少ないぞ。
う○こ味のカレーもたべます!みたいなヤバイ設定のNASがある会社はまずまずあるかもしらんが。。。
んな設定のまま使ってるなやwってーはなしでー

社内Webページに置かせてもらう あたりがまずまず現実的

メール添付で配ろうとするのは、これまたセキュリティにひっかかって地獄をみるだろう。
2021/04/04(日) 08:04:10.09ID:DYzzbk5J
>>213
だから、「個人的に難しい/簡単って言える人羨ましい」って言ってるんだけど?
2021/04/04(日) 08:31:16.27ID:/F7LAei5
>>214
Webサのうpが無理ならPythonじゃなくてVBAとかにしとけってはなし
2021/04/04(日) 08:48:55.24ID:DYzzbk5J
>>215
なんでそんな話になるんだ?
exeもwebも簡単→おれには難しい/簡単って言える人は羨ましいって流れだぞ?

あと、興味本位で聞くけど、VBAで画像認識ってできるの?
外部のアプリ叩くとかだと、その外部アプリどうすんのって話にすり替わるだけだと思うけど。
2021/04/04(日) 08:53:54.01ID:/F7LAei5
>>216
VBAで画像認識>野良ライブラリ落ちてないから手軽にはできないが、不可能ではない。

個人的には(、ちゅーか個人の事情的には?)(規約とかトラウマ的に)難しい
ってやつね
オトナコトバありがとう
2021/04/04(日) 08:59:11.82ID:DYzzbk5J
>>217
「pngの自動文字起こし」をVBAでスクラッチって無理な気がするけど。
ガチガチのアップロード機能作るより難しくね?
2021/04/04(日) 09:06:23.43ID:/F7LAei5
>>218
たしかにそこは
まちがいなく、確実に、
「がちがちのろだ」を整備するほうが簡単。

ところで
簡単っって言える(ようなセキュリティぬるぽでゆるされてる)人が羨ましい
の末尾に
見えない芝生生えてるよな?
2021/04/04(日) 09:16:30.52ID:DYzzbk5J
>>219
> 見えない芝生生えてるよな?

そんな事ないよ
環境に左右されるケースが大きいから、オレの環境のガイドラインだとハードルが高いってだけだし
ガイドラインが許す範囲で、コスト重視の簡易設計にするのは重要な見切りだと思ってる
2021/04/04(日) 09:24:05.66ID:/F7LAei5
>>220
個人的には
そのへんの規定がゆるーい(というか上の意識が低くて未整備まだ存在しないな場合がままある)会社だからって、
抵触しなければおkおkおkって「見切り」して
使うだけなひとびとのexe入りファイルのやりとりへの心のハードルずんどこ下げちゃうのは
すげーあぶないとおもうので
芝生がはえてしまう。

ハードルはすれすれで超えましょう。ってのは無論だいじだけど。
2021/04/04(日) 11:12:15.50ID:DgttH7dz
質問者そっちのけの話が好きだよな
2021/04/04(日) 11:19:20.22ID:xtAOreBW
質問はいわば大喜利のお題。
2021/04/04(日) 12:31:22.48ID:oZvlJFMv
>>207
exe化するのはリテラシーの低いシステム部門による苦肉の策であって基本ではないよ

基本はパッケージにして配布
2021/04/04(日) 12:32:21.42ID:vLoSd5kv
パッと調べただけだけどexe化ってpyinstallerってやつ使えばできるんじゃないです?
Webアプリはしょっちゅう作ってるんで余裕ですね
2021/04/04(日) 12:34:04.19ID:vLoSd5kv
>>224
なるほど
一部の部署以外は令和とは思えないほどネットリテラシー低いのでexe化は必須っすね
2021/04/04(日) 12:34:09.34ID:OG5V/QNa
webアプリ化するならPython選ばんだろjk
2021/04/04(日) 12:52:45.25ID:DgttH7dz
PyInstallerでexeにして上手く動けば儲けもの
動かないならexeを諦めて他、かな
PyInstallerのトラブルを解決できるような人は初心者スレで質問する必要ないよ
たぶん
2021/04/04(日) 14:51:24.94ID:JGzgwOb+
システム部門のリテラシーが低さをユーザーに責任転嫁するのは使えない情シスあるある
2021/04/05(月) 04:53:55.03ID:GCYTY8e9
サーバー側はseleniumを使ってアクセスしてる人が分かると聞きました
では、webbrowserを使ってアクセスした場合は分かるのでしょうか
また、その時にpythonが実行されてることは分かるでしょうか
2021/04/05(月) 05:02:30.07ID:GCYTY8e9
>>230
「webbrowserを使って」を
「webbrowser.openとかsubprocess.Popenを使って」に訂正です
2021/04/05(月) 06:26:56.58ID:1rfXdG6q
https://docs.python.org/ja/3/library/webbrowser.html
これの話をしているか?
これの話をしているなら
1. webbrowserから起動したブラウザでアクセスしたかどうかは分からない
2. Pythonか実行されているかどうかは分からない

Seleniumに関しても正確には理解してなさそうなので補足する
Webオートメーションによってアクセスされているかの判別は
1. navigator.webdriverフラグ
2. 人間らしい振る舞いの検出
に大別される
SeleniumではなくWebオートメーションと呼んだことから察するかもしれないが、
この判別は同じ用途のツールならSeleniumに限らず適用可能である
(逆に言えばSeleniumかどうかの判別ではない)

navigator.webdriverというのは、Webオートメーションによってアクセスしているかどうかをブラウザ自身に通知させるものだ
ただし、今のところブラウザのオプションで強制的にfalseにすることが可能だし、仮に今後オプションで変更できなくなったとしても、
野良ビルドされたブラウザが配布されるようになるだけで、それほど意味はないだろうことが策定時から指摘されている
https://developer.mozilla.org/ja/docs/Web/API/Navigator/webdriver

人間らしい振る舞いの検出というのは、例えば、
人間が要素をクリックするときはポインタかフォーカスが要素の上まで移動してくるはずである
この移動している様子がなかった場合は、Webオートメーションである
移動している様子があった場合も、ポインタが完全な直線で移動しているようなら、
人間の操作にあるはずの揺らぎがないことから、やはりWebオートメーションである
みたいなものである
実際のアルゴリズムはこのような単純なものではなく、現在は機械学習による異常検知が主流である
2021/04/05(月) 07:28:16.88ID:CsDRo5vQ
for inだけでしこしこデータベースをいじってアップデートしてたけど
だいぶPythonに慣れてきたのでいよいよpandasを使って書いてみようとしたらコードは簡潔になったけどめっちゃ遅くなった…
遅い部分を削っていったらもうパンダ使う意味ほとんどなくなったし。げんなり
2021/04/05(月) 08:01:26.42ID:GCYTY8e9
>>232
はい、そのリンク先の話をしていました
navigator.webdriverをfalseに設定できるってことすら知らなかったです
いや、本当にありがとうございました!
2021/04/05(月) 10:42:07.74ID:02jeM6qR
>>232
>人間が要素をクリックするときはポインタかフォーカスが要素の上まで移動してくるはずである

人間が使っていてもポインタやフォーカスが移動しないケースはいくらでもあるよ
2021/04/05(月) 10:50:40.71ID:Yz4vPuYc
>>235
そういうグレーなときだけRecapなんちゃらを出すのサ
2021/04/05(月) 11:21:28.34ID:3HQ81ZvQ
>>236
全然グレーじゃないよ
いまどき岡崎図書館でもそんなことはしないんじゃないか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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