[過去ログ] Pythonのお勉強 Part73 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
792: (ワッチョイ 6754-DWku) 2024/09/02(月)17:05 ID:V2ztMrfU0(2/6)調 AAS
削除する必要が最大1行ならいいけど、実際には2行のケースもある
793: (ワッチョイ 479f-7hP0) 2024/09/02(月)17:13 ID:ciLmvDW/0(2/3)調 AAS
理解力というか応用力低すぎて草
794: (ワッチョイ 6754-DWku) 2024/09/02(月)17:30 ID:V2ztMrfU0(3/6)調 AAS
んー、そんな小手先で回避してたらすぐ行き詰まるよ
795: (ワッチョイ 5f6e-a21C) 2024/09/02(月)17:52 ID:DywOJmSg0(1/2)調 AAS
1回目は削除インデックスを確保するだけで2回目のフィルタリングでそのインデックスを削除する
何行削除でも可能
796: (ワッチョイ 6754-DWku) 2024/09/02(月)18:08 ID:V2ztMrfU0(4/6)調 AAS
なるほど2パスにするのか
入力はファイルなのでそれで十分だし高速だしメモリも食わない
ストリームにまで対応可能な方法は多分ない
797: (ワッチョイ 072a-DKuy) 2024/09/02(月)18:18 ID:cZu9PahF0(1)調 AAS
>>790
俺にはこの話題の sed コマンドは全く理解できないが、解るなら python に移植してみてはどうだ。
2chスレ:unix
798: (ワッチョイ 5f86-NFJX) 2024/09/02(月)18:18 ID:0P3ClJWr0(1)調 AAS
dpでやるやつじゃね?
799: (ワッチョイ 6754-DWku) 2024/09/02(月)18:24 ID:V2ztMrfU0(5/6)調 AAS
sed的にやろうとすると、ファイル全体を読み込んで検索して、というやり方と同じなので、
メモリはファイルサイズだけ食うことになる
sedはそれをストリームに対してやるのでメモリ食わない
メモリ節約するなら最低限だけ読みながら、という処理になるけど、
最低限が何行なのかは条件次第なので条件の解析までやらないといけなくて、
ツブシの効かないコードを頑張って書くことになる
800: (ワッチョイ 479f-7hP0) 2024/09/02(月)18:39 ID:ciLmvDW/0(3/3)調 AAS
主に最適化の理由で出力のバッファリングはPython内外で透過的に行われてるし
そこに出力遅延するio.Writer追加するだけの話
バッファはいくらでも動的に確保したらいい
小手先らしいけどそれで必要十分
801: (ワッチョイ df31-XDF5) 2024/09/02(月)18:49 ID:R3lh7LPd0(1)調 AAS
本人がバッファリングが必要な範囲を抽象化して捉えられてないから1行とか2行とかって説明になるんだろ
最近出現頻度の高い末尾54さんはいつもこのパターン
802: (ワッチョイ 6754-DWku) 2024/09/02(月)18:53 ID:V2ztMrfU0(6/6)調 AAS
前後の行としか書いてないけどな
前後n行だよ
バッファリングするのはいいとして、フラッシュのタイミングが不明だとどうしようもない
前後n行に絶対引っかからない行が定義できない
803: (ワッチョイ 5f6e-a21C) 2024/09/02(月)18:56 ID:DywOJmSg0(2/2)調 AAS
前の全部の行が削除対象になり得ることを考えるとストリームにやるなら全部バッファに溜めるしかなさそうだ
804: (ワッチョイ ff7c-rxv+) 2024/09/03(火)15:35 ID:GbfXXZxt0(1)調 AAS
>>0790
https://ideone.com/R9UweU
前後N行消したいなら、前のN行をバッファできれば充分。1パスでいけるよ
805: (ワッチョイ 5f4d-XDF5) 2024/09/03(火)21:07 ID:l2RoLSBv0(1)調 AAS
N行が全行−1行になることもあるから1パスだとメモリ食ってヤダって話みたいよ
そもそもの問題認識が間違ってるよね
806: (ワッチョイ 6754-DWku) 2024/09/03(火)21:28 ID:b8qS9knc0(1/2)調 AAS
今やメモリなんて膨大にあるから、1億行でも平気
そんなこと気にしないのが簡単でかつ現実的
一応気にして2パスにするのも、比較的簡単
中途半端に気にして対応すると手間がかかる上に不完全になる
807: (ワッチョイ 5f5c-1cCN) 2024/09/03(火)22:33 ID:2uJG6i7Z0(1)調 AAS
じゃあ何を悩んでたの?
よく分かんねーけど能書きの前に常識として謝辞のひとことくらい述べたらどうかね
808: (ワッチョイ 6754-DWku) 2024/09/03(火)22:36 ID:b8qS9knc0(2/2)調 AAS
なんか知らんけど、勉強する気のない奴が紛れ込んでるんだよな
809: (ワッチョイ e768-3eZc) 2024/09/04(水)10:07 ID:1egc59UO0(1)調 AAS
slenium使ってWebページの巡回してますが、CSSセレクターやxpathが日によって変動する場合の対処法をご教授願えれば幸いに存じ上げマッスルマッスル。
810(1): (ワッチョイ 6754-DWku) 2024/09/04(水)13:21 ID:8f/9E+Y70(1/8)調 AAS
フルで指定しなくても部分でもいけるので、変わらない部分を使う
811(1): (ワッチョイ 6754-DWku) 2024/09/04(水)16:46 ID:8f/9E+Y70(2/8)調 AAS
またストリームっぽい話
デリミタ行があって、それで区切った単位で処理する
デリミタを見つけたら処理、みたいにすると、デリミタ無しで終了した場合に最後が抜ける
元データの方で最後にもデリミタを入れる
ループを抜けた後に同じ処理を追加する
デリミタ or EOF みたいな判定にする
等の対応があって、EOFがスマートそう
でもEOFの検出が大変
ファイルを1行ずつ読んでても次を読んでみないと判らないし、
iterでも例外を起こすとか、リストが対象だったらコピーしといてpopしていって空か見るとか
最後まで行ったら自動で終わる処理はとても書きやすいのに、
最後の処理の最中に最後だと判定するのが困難
812: (ワッチョイ 5f4d-JZrR) 2024/09/04(水)16:53 ID:mtP1OC380(1)調 AAS
日本語を見ればプログラミング適性がないのがよくわかる
813: (ワッチョイ 479f-7hP0) 2024/09/04(水)17:15 ID:u5L50CbY0(1/2)調 AAS
デリミタ行以外で終端になったら
追加でデリミタ行を返すイテレータを書くだけ
814: (ワッチョイ 6754-DWku) 2024/09/04(水)17:24 ID:8f/9E+Y70(3/8)調 AAS
データ数nでデリミタ数n-1、という気持ち悪い状態が自然によくあるんだよな
joinで結合して、splitで分解するのと同様に、
デリミタで分解する処理を最初に入れるのが多分正解
最後のデリミタがあってもなくてもいいようにしないといけない
815: (ワッチョイ 6754-DWku) 2024/09/04(水)17:28 ID:8f/9E+Y70(4/8)調 AAS
分解する処理が全く同じ問題にぶつかるんですが
816: (ワッチョイ 87a9-vKF2) 2024/09/04(水)17:30 ID:6BJD9ak60(1)調 AAS
>>810
ありがつお!フルで指定しないとエラーでます。
ifとか使ってあがいてみマッスルマッスル!
817: (ワッチョイ 6754-DWku) 2024/09/04(水)17:33 ID:8f/9E+Y70(5/8)調 AAS
perlだったら、f = open(file) みたいなので取得したファイルオブジェクトに対して
eof(f) を見たら終端に達してるかどうかが判る
pythonでもf.eof() みたいなのを作っといてくれればいいのに無いというのは、
そんなプログラムは書くなという明示的な意図なんだろうな
便利なのになー
なんで駄目なんだろ
818: (ワッチョイ 6754-DWku) 2024/09/04(水)17:54 ID:8f/9E+Y70(6/8)調 AAS
仕方ないからsplitのlist版を汎用で書いて、自分用ライブラリに入れとこう
これも意地悪で存在しないのか?
819: (ワッチョイ 479f-7hP0) 2024/09/04(水)18:09 ID:u5L50CbY0(2/2)調 AAS
more_itertools.split_ナントカ
820(1): (ワッチョイ ff7c-rxv+) 2024/09/04(水)19:07 ID:8eJhy0Tz0(1)調 AAS
>>0811
1行単位で読みつつ複数行単位で処理したいループのあるあるだね
Pythonならイテレータやジェネレータを使うかも
https://ideone.com/qSuDAt
なるほどジェネレータの処理が“全く同じ問題にぶつか”ってて、
この例ではそこを「ループを抜けた後に同じ処理を追加する」でやってることになるかな
まあでも、泥臭いことをここに押し付けて、メインのループがブロック単位でまわせるのがよい
だいたい、ふだん行単位でまわせるのもライブラリが泥臭いことしてるおかげだし
821(1): (ワッチョイ 6754-DWku) 2024/09/04(水)19:46 ID:8f/9E+Y70(7/8)調 AAS
https://i.imgur.com/wMdI3xj.png
真似っこ
buf.clear() まで真似したら見事にバグる
822(1): (スプッッ Sdff-UdSI) 2024/09/04(水)20:41 ID:gNKcgXFOd(1)調 AAS
こういうバカに産まれなくてホントに良かったよ
CSVなんかでも最後にカンマあるとかねーとかでうんうん言うんかな
823: (ワッチョイ 6754-DWku) 2024/09/04(水)20:59 ID:8f/9E+Y70(8/8)調 AAS
セパレータで区切って1行になってたら最後にはセパレータがあってほしくない
文字列を改行で区切って並べるなら、最後にも改行があって欲しい
等価なことをやってる筈なのに、区切りが改行の時だけ例外なんだよな
'\n'.join(l) + '\n'
みたいなことをやる羽目になって、それが正しいんだけど不便
824: (ワッチョイ 7f34-lL3G) 2024/09/05(木)00:04 ID:J+Hr7uF60(1/2)調 AAS
汚れ仕事になると分かってるなら
そこだけ分離するな
825: (アウアウエー Sa1f-XN8b) 2024/09/05(木)00:12 ID:/oUqYYg3a(1/2)調 AAS
>>811
readerにfinalizeを用意させれば良い
826: (アウアウエー Sa1f-XN8b) 2024/09/05(木)00:14 ID:/oUqYYg3a(2/2)調 AAS
>>822
range(start, end) で end - 1 までになるのが納得いかないとか言い出しそうだよね
827: (ワッチョイ 6754-DWku) 2024/09/05(木)12:37 ID:yOHjemdL0(1/2)調 AAS
これが汚れ仕事になってしまうのは、プログラム的な正しさと人間の正しさの感覚の齟齬があるんだろうな
pascalで行末にセミコロンを付ける
でもこれはセパレータなので、最後の行にも付けるとエラーにされる
ふざけんなということで、Cではセパレータではなく行末記号になった
今度は最後にも付けないとエラー
a = [
aaa,
bbb,
ccc,
]
最後のコンマは要らないけど、あった方が書きやすいし、勝手にヌル要素が追加されたりもしない
無視されるだけ
a = func(a, b, c,)
これも許容される
でも気持ち悪いから、多分こうは書かない
最後の余分なセパレータに対する統一的な方針は無い
828(1): (ワッチョイ ff7c-rxv+) 2024/09/05(木)13:31 ID:Uxm0hRsL0(1)調 AAS
>>0823
「最後にもセパレータがある」は矛盾してるよ
最後のセパレータの次には空の要素があるとみなすべき
それぞれの要素の後に記号をつける場合その記号は「ターミネータ」
記号は改行だけとは限らず「foo;bar;baz;」とかでもよい
ターミネータ式では「foo;bar;baz」は厳密には ["foo", "bar"] にゴミがついてるとみなすけど、最後の要素とみなすことも多い。それでも「foo;bar;」で最後に空の要素があるとはみなさないのでセパレータとは違う
splitやjoinはセパレータ式を扱うものだから、ターミネータ式の分割と結合に使うとき小細工が必要なのは仕方ない
>>0823 の「等価な筈なのに〜」だの「セパレータが改行のときだけ」だのも区別がついてない
「ターミネータの場合は」なの
# セパレータをカンマからタブに
csv = "foo,bar,baz"
list = csv.split(",")
tsv = "\t".join(list)
# ターミネータをセミコロンから改行に
stv = "foo;bar;baz;"
list = stv.split(";")[:-1] # 小細工
ltv = "\n".join(ltv) + "\n" # 小細工
829: (ワッチョイ 7f34-lL3G) 2024/09/05(木)14:35 ID:J+Hr7uF60(2/2)調 AAS
セパレータなのか終端記号なのかというところに
統一的な見解を作るのは無理だろう
830(1): (ワッチョイ 2701-Ve+T) 2024/09/05(木)15:30 ID:gQmEldZ20(1)調 AAS
>>820
yieldしたbufをclearしたらアカンやろ
>>821
偉そうなこと書いててもコードはこのレベルなのかよw
勘弁してくれよ
>>828
Pythonのoptional trailing commaとかは
ターミネータではなくセパレータだよ
文法としてそれが規定されてて
オプショナルセパレータを処理する仕組みがあるかどうか
831: (アウアウエー Sa1f-XN8b) 2024/09/05(木)23:28 ID:/+8Jbbe1a(1)調 AAS
これも終端がいい加減な例の一つ
https://5ch.net/
https://5ch.net
832: (ワッチョイ 5f5c-1cCN) 2024/09/05(木)23:37 ID:mXpnohHX0(1)調 AAS
それ終端なのかよURIの記法ってそうだっけパスの頭じゃねーの?
833: (ワッチョイ 6754-DWku) 2024/09/05(木)23:37 ID:yOHjemdL0(2/2)調 AAS
urlもそうだし、パスを分解する時も、なんだこの不規則はと悩む
C:/
は/が無いと意味不明になる
でも
C:/bin/
C:/bin
はどっちもあり
ファイルとディレクトリを同列に扱いたいというスタンスからすると、末尾の/はあって欲しくない
でもルートの場合は必要
どっちかに統一しないと、
f'{path}/{filename}'
みたいに書けない
仕方ないので、あってもなくてもいいけど、あったら無視する
という汚れ仕事吸収層に任せることに
834: (ワッチョイ 8779-55Je) 2024/09/06(金)00:52 ID:0I3gstue0(1)調 AAS
urlといいうか、*nixはスラッシュ止が本来なんだっけ?
それにしてもファイルパスは意外と厄介
rsyncみたいに、スラッシュがあるかないかで振る舞いが全く異なるものもあるし
835: (ワッチョイ 5f56-q2Ob) 2024/09/06(金)00:54 ID:R0hAYngZ0(1)調 AAS
最初の/は、ルートではなく絶対パスの意味
長さゼロの文字列はカレントディレクトリかなぁ
ドライブ指定のみ
C:
ドライブ指定+絶対パス指定
C:/
ドライブ指定+相対パス指定
C:.
C:/Users>cd /d D:/
D:/>cd /d C:.///.//yamada///Music//
C:/Users/yamada/Music>
となるし
836: (オイコラミネオ MMcb-rxv+) 2024/09/06(金)08:29 ID:FtlRyc/CM(1)調 AAS
>>830
820 と 828 にツッコミありがと そのとおりだね
いずれにせよ811や823の参考になればと思ったけれど
833までみるとプログラミングやPythonの勉強よりは別のことをしたいみたいだ
837(1): (スププ Sd7f-8MDM) 2024/09/06(金)12:59 ID:5V/vqJZed(1)調 AAS
もうメンテナンスしかやることねえ・・
838: (ワッチョイ 0701-F2Kr) 2024/09/06(金)13:05 ID:8mJhneNM0(1)調 AAS
>>837
うん?
まぁ、そんなもんだ
839(2): (ワッチョイ 278b-k4Tl) 2024/09/06(金)15:15 ID:kb80ato/0(1/10)調 AAS
ほぼ知識ゼロの状態からPythonでアプリを作るのは無謀?
840: (ワッチョイ 7f34-lL3G) 2024/09/06(金)16:28 ID:b7WWclpu0(1)調 AAS
知識ゼロにも色々あってな
プログラミング自体やったことがないのか
Pythonでやったことがないだけなのか
841: (スッップ Sd7f-CFO5) 2024/09/06(金)16:35 ID:e4ITOx4xd(1/3)調 AAS
PC触ったことないとか
842(1): (ワッチョイ 5f87-F2Kr) 2024/09/06(金)16:43 ID:QtgCCsYf0(1)調 AAS
>>839
できる
どの書籍、選び方次第
843: (ワッチョイ 278b-k4Tl) 2024/09/06(金)16:43 ID:kb80ato/0(2/10)調 AAS
プログラミングの知識はほぼゼロ
unreal engineのC++に何が書いてあるのかわからない
コードの書き方の知識もほぼゼロ
844(2): (ワッチョイ 278b-k4Tl) 2024/09/06(金)16:44 ID:kb80ato/0(3/10)調 AAS
>>842
良い書籍や動画を教えてくれると助かる
845: (ワッチョイ 278b-k4Tl) 2024/09/06(金)16:47 ID:kb80ato/0(4/10)調 AAS
組みたいプログラムはオレの知る限り、おそらく一般には採用されてないけど、そんなに複雑なものでもないと思う
なので、信頼してる人しか組みたいプログラムは教えたくない
846(2): (スッップ Sd7f-CFO5) 2024/09/06(金)16:52 ID:e4ITOx4xd(2/3)調 AAS
>>844
>>736
847: (ワッチョイ 278b-k4Tl) 2024/09/06(金)16:56 ID:kb80ato/0(5/10)調 AAS
>>846
ありがとう
登録した!
書籍もあると助かります
848(1): (ワッチョイ 278b-k4Tl) 2024/09/06(金)16:58 ID:kb80ato/0(6/10)調 AAS
>>846
どのリストから見れば良い?w
849: (ワッチョイ 278b-k4Tl) 2024/09/06(金)17:01 ID:kb80ato/0(7/10)調 AAS
UE使う時にvisual studio入れた
サッパリだったけど…
850(1): (スッップ Sd7f-CFO5) 2024/09/06(金)17:06 ID:e4ITOx4xd(3/3)調 AAS
>>848
取り敢えずPython速習っていう2時間半の動画観て雰囲気を掴んでみては
その前にシステムの構築をしておいたほうがいいかも
851: (ワッチョイ 2728-k4Tl) 2024/09/06(金)17:12 ID:kb80ato/0(8/10)調 AAS
>>850
Python落として、visual studioとあと何が必要?
852: (ワッチョイ 2728-k4Tl) 2024/09/06(金)17:15 ID:kb80ato/0(9/10)調 AAS
↑で紹介してくれた人、書籍出してるんだな
それも買います
853: (ワッチョイ bf57-a21C) 2024/09/06(金)18:29 ID:B348q7Ai0(1)調 AAS
Pythonとvscodeがあればその動画の内容くらいなら十分できるだろう
854(1): (ワッチョイ e779-g3wY) 2024/09/06(金)18:30 ID:060imtVw0(1/2)調 AAS
サプー3D前の方が好き
855(1): (ワッチョイ 07b7-fene) 2024/09/06(金)19:19 ID:jTHLjygZ0(1)調 AAS
>>854
本の表紙がかわいい
856(1): (ワッチョイ 276a-55Je) 2024/09/06(金)19:48 ID:PgSZcrVr0(1)調 AAS
>>844
自分が勉強した順。
PaizaというサイトでPython3に関してはある程度の部分まで無料で学べる。
講座は動画、各項目毎に小テスト。
とりあえずは環境を整えなくてもオンライン上で実行環境が用意されている。
自分はそこで最低限の文法を勉強してから他の動画やネット上のソースを見たりした。
見たソースは、最初のうちは極力ソース内のあちこちに細かく「〇〇する」とか」コメントがあるもの。
そういうものを見て「あー、この部分数行でファイルを読み込むんだ」とか、
「こうやって流れを繋げていくんだ」ってのを理解した。
857: (ワッチョイ e7f9-g3wY) 2024/09/06(金)21:20 ID:060imtVw0(2/2)調 AAS
>>855
表紙かわいい
858: (ワッチョイ 277a-k4Tl) 2024/09/06(金)22:41 ID:kb80ato/0(10/10)調 AAS
みんなありがとう
色々実践してみます
859(1): (ワッチョイ 6754-DWku) 2024/09/07(土)09:57 ID:wncxx9TU0(1/7)調 AAS
>>776を作ってみた
取得した結果を入れておく場所と、見つかったかどうかのフラグと、セマフォをglobalで共有する
フラグは本当は呼び出し側で処理したかったけど、result()を得ようとしたら終了待ちするので意味がない
履歴を記録しておくファイルもあって、その都度開いて追記して閉じる
他のスレッドと衝突しないかどうかは運次第
860: (ワッチョイ 479f-7hP0) 2024/09/07(土)10:13 ID:frLS0o200(1/2)調 AAS
スレッドじゃなく別プロセスでやればええんでは
ライブラリが行うプールの管理だけで済む
861: (ワッチョイ 7fdb-8MDM) 2024/09/07(土)11:35 ID:vd/lqcQo0(1)調 AAS
それな
おれも普通にプロファイル作ってるわ
ただ1プロファイルにつきたしか600MBくらい使ったけど
862(1): (ワッチョイ 6754-DWku) 2024/09/07(土)12:27 ID:wncxx9TU0(2/7)調 AAS
プロセスを別にするのは重い計算とかでCPUコアを分けたい時で、
ネットワークの待ち時間の間に他のことをしたいだけなのでスレッドでいい
863: (ワッチョイ c7f0-rxv+) 2024/09/07(土)13:58 ID:j/xwjrvk0(1)調 AAS
>>859
そんなことしなくてもselenium grid使えば全部自動でやってくれるぞ
自前実装したいのなら勝手にやればいいけど
864: (ワッチョイ 479f-7hP0) 2024/09/07(土)16:04 ID:frLS0o200(2/2)調 AAS
>>862
マイコンやキオスク端末ならわかるけど
デスクトップOSなんてプロセス無数に動いてる
コンテキスト切り替えが多発したりリソース気にするんじゃなけれりゃ
たいしてスレッドにこだわる意味はない
Chromeもプログラム構成優先してがんがんプロセス生成してる
865: (ワッチョイ 6754-DWku) 2024/09/07(土)16:47 ID:wncxx9TU0(3/7)調 AAS
別に拘りは無い
どっちでも同じ
コード上もThreadPoolExecutorをProcessPoolExecutorと書き換えるだけ
実際の中身の処理はかなり変わるけど、どっちにしろ待ち時間が大半なので何も変わらない
processである必要が無いのにprocessにしてあると、なんで???と思われるだけ
866(1): (ワッチョイ df90-XDF5) 2024/09/07(土)18:09 ID:Zt7rxXUV0(1)調 AAS
seleniumは並行に大量のページにアクセスするのには向かない
I/O待ちでもブロッキングするしかなくセッション単位で別のブラウザーインスタンスが必要だからリソース馬鹿喰い
今は代替ツールがあるので新しく書くコードならそっちを使う
867(1): (ワッチョイ 6754-DWku) 2024/09/07(土)18:49 ID:wncxx9TU0(4/7)調 AAS
seleniumは多重処理関係なく重いというか大げさだけどね
本物のブラウザそのものだし
互換品や簡易版で動くようなサイトなら、最初からrequestsで済ませるけど、
本物じゃないと動作が怪しいなら本物を使うしかない
868: (ワッチョイ e738-NFcD) 2024/09/07(土)19:00 ID:zesuODdH0(1/3)調 AAS
はやさなら
パンダ<美汁<セレン
869: (ワッチョイ e738-NFcD) 2024/09/07(土)19:01 ID:zesuODdH0(2/3)調 AAS
間違った反対
870: (ワッチョイ 6754-DWku) 2024/09/07(土)19:14 ID:wncxx9TU0(5/7)調 AAS
重いだけで済むんだから楽なもん
perlでmechanizeとか紹介されてて、なんか便利そうだと思って使ってみても、
便利でも何でもない
スクリプトとかあったら人間が解析しないといけない
selenium使ってさえ、取得したpage_sourceがスクリプトの塊で、
謎に分割されてたり、jsonっぽいけどjsonじゃなかったり、
スクレイピング避けのいたちごっこが続いている
871: (ワッチョイ e738-NFcD) 2024/09/07(土)19:18 ID:zesuODdH0(3/3)調 AAS
デスクトップ上の座標でクリックしてけばいい
872(1): (ワッチョイ 87e6-n0L+) 2024/09/07(土)21:26 ID:o9ae9Qt50(1/4)調 AAS
seleniumでウェブの操作を行うプログラムを持っているのですが、おそらくグーグルchromeのアップデートが原因で動かなくなりました
実行後、何も処理せずに落ちてしまうのでエラー内容すら見られません
chromeのバージョンは128.0.6613.120
chromeドライバーのバージョンは128.0.6613.119の32bitです
ドライバーを旧バージョンから最新バージョンに上書きするだけではダメなんですかね?
873: (ワッチョイ 6754-DWku) 2024/09/07(土)21:29 ID:wncxx9TU0(6/7)調 AAS
実際に使ってるブラウザとseleniumのドライバを合わせないといけない
みたいな努力は割と前に不要になった
874(1): (ワッチョイ 87e6-n0L+) 2024/09/07(土)22:06 ID:o9ae9Qt50(2/4)調 AAS
エラーのスクショが撮れました
何が悪いのか分かる方いたらご教示お願いします
https://i.imgur.com/Jqpd9a5.png
875(1): (ワッチョイ 6754-DWku) 2024/09/07(土)22:08 ID:wncxx9TU0(7/7)調 AAS
from selenium import webdriver
with webdriver.Chrome() as driver:
みたいに書く
876: (ワッチョイ 87e6-n0L+) 2024/09/07(土)22:22 ID:o9ae9Qt50(3/4)調 AAS
>>875
その2行目を付け足したら速攻で落ちるようになりました…
webdriver.Chrome()の()の中に、
エラー画像の4行目のservice=ChromeServiceなんたらかんたらをいれるのかな?とよく分からないながらやってみても変わらず
877: (ワッチョイ 2701-C5B1) 2024/09/07(土)22:28 ID:2iOJWTB70(1)調 AAS
>>867
>>866に書いてること1ミリも理解してなくて草
普通にブラウザ使ってれば
あるサイトのリクエスト完了を待ってる間に
違うタブで別サイトにリクエストを出すことができることくらいはわかるよね?
seleniumではそれが出来ない
同じことを達成したければ一つ一つ別プロファイル作って
専用のブラウザインスタンスを立ち上げないといけない
seleniumだけでなくrequestsもmechanizeも全部非同期に対応してないので
量をさばく必要がある場合に使う道具ではなくなってる
878(1): (ワッチョイ 87e6-n0L+) 2024/09/07(土)22:39 ID:o9ae9Qt50(4/4)調 AAS
>>872のソースはこれです
コードは極力削っています
https://i.imgur.com/kgfDXeE.png
879(1): (ワッチョイ e7d4-g3wY) 2024/09/07(土)23:50 ID:57KCZCA60(1)調 AAS
>>878
同じバージョンだけど動いてyahoo見れるな…
880(1): (オッペケ Srbd-bQm6) 2024/09/08(日)03:12 ID:5mVESwIRr(1)調 AAS
>>879
マジですか…
数か月くらい動かしていない期間があって、久しぶりに昨日動かそうとしたらエラーが出て…
WinError 193の対処法として紹介されていた、
service = ChromeService(ChromeDriverManager().install())によって作成されるChrome Driverのキャッシュを消すというものも効果なし
それ以外のエラーはよく分からず
881(1): (ワッチョイ f16a-OVBJ) 2024/09/08(日)09:00 ID:6sSIgrGd0(1/2)調 AAS
>>880
その記述って自動で適切なChromeDriverをダウンしてきてくれるみたいだけど、出てるエラーはChromeDriverと合ってないから実行できないよ、っていう事らしい。
自動で上手くいかずキャッシュを消してもダメなら自動を止めて、ChromeDriverの各バージョンを片っ端から手動でダウンして試してエラーの出ないchromedriver.exeをどこかのフォルダに置いといて直接指定すれば良いのでは?と思うけどそれじゃダメなの?
882(1): (ワッチョイ 7501-+J7s) 2024/09/08(日)11:55 ID:r0meOORq0(1)調 AAS
>>874
webdriver_managerのバージョンも最新に
883(1): (ワッチョイ 8956-x2r9) 2024/09/08(日)16:48 ID:FaHdpY160(1/3)調 AAS
それね
俺も先月業務アプリが動かなくて困った記憶あるわ
結論から言うとwebdriver_managerはもういらない
selenium単独で自動的に最新のdriverを取得することができるみたい
```
from selenium import webdriver
options = webdriver.ChromeOptions()
'''オプションがあれば追加'''
options.add_argument('--start-maximized')
driver = webdriver.Chrome(options=options)
try:
driver.get("http://google.co.jp")
except Exception as e:
print(e)
finally:
driver.quit()
```
884: (ワッチョイ 8956-x2r9) 2024/09/08(日)16:55 ID:FaHdpY160(2/3)調 AAS
ちなみにSeleniumバージョン4.6以上が必要らしいので注意ね
ここを参考にするといいよ
https://yuki.world/python-selenium-chromedriver-auto-update/
885: (ワッチョイ 911d-sF61) 2024/09/08(日)18:21 ID:ZvPXoPz+0(1/11)調 AAS
>>839
で色々とアドバイスもらった者です
サプーさんの書籍も購入したんだけど,ある程度、初心者を抜けるか抜けないかの人向けだね、これ
ほんとにプログラミングについては知識ゼロなので、動画以外でこの前段階の超入門書みたいなのでオススメあれば教えていただきたい
886(1): (ワッチョイ 4954-okkI) 2024/09/08(日)18:31 ID:zGDX69KT0(1/6)調 AAS
サプー動画の最初の方は、これ以上ないくらい初心者向けだろう
さすがに見てないので判り易いかどうかは知らない
887: (ワッチョイ 911d-sF61) 2024/09/08(日)18:36 ID:ZvPXoPz+0(2/11)調 AAS
>>886
とりあえず2時間のやつで雰囲気掴んだ後に、どれを見ればいいのかわかんないのよね…
あと書籍っていうある程度まとめて基礎の基礎何詰まってるモノが欲しいんだ
いつでも読めるように
888: (ワッチョイ 911d-sF61) 2024/09/08(日)18:40 ID:ZvPXoPz+0(3/11)調 AAS
プログラムはできるだけシンプルで、うまく動かなかったり不具合出た時に、他の人でも修正位置がわかりやすく、後から機能を追加しやすいフレキシブルなモノが良いってのはなんとなくわかるのよ…
まず、それを書く知識が全くと言っていいほどないんだよね🙃
889(2): (ワッチョイ 911d-sF61) 2024/09/08(日)18:42 ID:ZvPXoPz+0(4/11)調 AAS
なので、どの動画が自分の欲しい情報解説してあるモノなのかの判断もつかない状態です
890(1): (ワッチョイ 8aa5-f0zi) 2024/09/08(日)18:45 ID:nFVqfsuv0(1/4)調 AAS
>>889
さっさと実務をやった方がいいです。
ダサいコードが仕様変更に耐えられるコードです。
891(1): (ワッチョイ 911d-sF61) 2024/09/08(日)18:47 ID:ZvPXoPz+0(5/11)調 AAS
>>890
とりあえず組みたいプログラムに取り掛かれって事?
上下前次1-新書関写板覧索設栞歴
あと 111 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s