1 名前:デフォルトの名無しさん [2020/01/02(木) 15:56:54.08 ID:ZUrZA+uS.net] 当スレに★Python以外のプログラミング言語での回答類を書くべからず★ ☆「Ruby では」「Rubyでは」をNGワード登録推奨 このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 ★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので ↓等のてきとうなソースコード用うpろだに貼ってきてください。 スクショをImgur等にうp といった 手抜き(クソ行為)禁止。 ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と 実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。 ◇Python公式サイト◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/ 〇前スレ〇 くだすれPython(超初心者用) その45【Ruby禁止】 https://mevius.5ch.net/test/read.cgi/tech/1571188632/
403 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 13:58:33 ID:0XMsrEiZ.net] >>399 じゃあ文字コードあってるかどうかというか、 そもそも、ちゃんと、指定してるんか?
404 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 13:59:44 ID:0XMsrEiZ.net] >>397 だから>>1嫁ってば OSくらい書かないとわからん
405 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 17:35:08 ID:Y8WnpXRT.net] >>401 os windows10 anaconda python3.7 です。 https://stackoverflow.com/questions/47692960/error-when-using-pyinstaller-unicodedecodeerror-utf-8-codec-cant-decode-byt の方法で out = out.decode(encoding, errors='ignore') としたら実行ファイルできたけど、 Runすると 読み込みファイルを聞いてくる→計算処理→グラフ出力→計算処理結果ファイルに出力 となるはずが、読み込みファイルを聞いてこず、なにか謎処理をしてグラフは出さずに計算結果だけ出力します。 なんだこりゃ。
406 名前:デフォルトの名無しさん [2020/01/26(日) 18:02:56 ID:R5dI7Hbk.net] Anaconda信者はちゃんとサポートしてやれ 俺はあんなゴミ使わないから知らねー
407 名前:デフォルトの名無しさん [2020/01/26(日) 18:05:10 ID:htXcC3/b.net] 配列で 0番目の値を1番目の値に足す 1番目の値を2番目の値に足す というのを繰り返して 最後は n番目の値を0番目に足す こういうループを作るのってどうすればいいですか? a=[] for i ,h in enumerate(haireru): ___a.append(hairetu[i]+hairetu[1+1]) にすると最後ゼロ番目と計算できないです
408 名前:デフォルトの名無しさん [2020/01/26(日) 18:34:25.67 ID:htXcC3/b.net] すみません aは配列じゃなくてループ内ですぐに使いたいので iはゼロはじまりでお願いします for i ,h in enumerate(hairetu): ___a=(hairetu[i]+hairetu[i+1]) __b=c*a
409 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:39:12.37 ID:ux8Vy6ZU.net] >>404 foo = [1,2,3,4,5] [ x + y for x, y in zip(foo, foo[1:] + [0])] #=> [3, 5, 7, 9, 5] このパターンこのスレだけでもう3回目くらいだと思うんだけどなんで頻出なのか謎
410 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:39:24.22 ID:0XMsrEiZ.net] >>402 だから文字コード(encodingの中身)をちゃんと指定汁とさっきから言ってるだろうがよ Anacondaの詳しいことはおれもよーしらんわ >>403
411 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:40:00.40 ID:0XMsrEiZ.net] >>406 どこかの私大の追試レポートで出てると予想
412 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:43:49.29 ID:+Q3fYZeR.net] >>403 Anaconda信者とかより、コミュとれない奴の相手はエスパー・高脳でないと相手できないからな。 >読み込みファイルを聞いてくる→計算処理→グラフ出力→計算処理結果ファイルに出力 以下略 は、エスパー・高脳でないとポカーンになる感じだからな
413 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:50:45 ID:UvzYuhqV.net] [ x + y for x, y in zip(foo, foo[1:] + foo[0:1])] #=>[3, 5, 7, 9, 6]
414 名前:デフォルトの名無しさん [2020/01/26(日) 21:10:21.36 ID:htXcC3/b.net] >>406 >>410 ありがとうございます 配列って[:]どうしだと合体できるんですね 助かりました
415 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 21:40:26.45 ID:Y8WnpXRT.net] 401ですけど、 すいません。 コード上げてきちんと質問するべきですよね。 期限迫ってたのであせってたのですが、寝落ちして少し頭冷めました。 あきらめて現在のところまででまとめることにしました。 今の仕事終えてから、ご指摘頂いたこともう一度確認してみます。
416 名前:デフォルトの名無しさん [2020/01/26(日) 22:23:07 ID:mYb8Rqtn.net] >>404,405 n=len(hairetu) for i ,h in enumerate(hairetu): ___a=(hairetu[i]+hairetu[(i+1)%n]) __b=c*a
417 名前:デフォルトの名無しさん [2020/01/29(水) 16:41:03.56 ID:rr34JdCX.net] どこまでdefでまとめるのが良いのかアドバイスお願いします 一定の距離ごとに物体の置いてその場所や向きや大きさを決めています 距離ごとに計算すべきなのか 最初から物体の位置、向き、大きさをすべて計算して 置けばよいのでしょうか? ↓距離ごとの計算 for km in 距離: __物体の位置()に物体を置く処理 __向きの計算()に物体の向きを変える処理 __大きさ()に物体の大きさを変える処理 def 物体の位置: ___計算式 def 物体の向き: __計算式 def 大きさ(): __計算式
418 名前:デフォルトの名無しさん [2020/01/29(水) 16:4
] [ここ壊れてます]
419 名前:3:09.94 ID:rr34JdCX.net mailto: 続きです ↓まとめて計算した場合 for x in 物体の位置(): __物体を指定の位置に置く処理 for y in 物体の向き(): __物体を指定の向きに置く処理 for z in 物体の大きさ(): __物体を指定の大きさにする処理 def 物体の位置(): 位置 = [] __for km in 距離: ___位置.append() __return 位置 def 向きの計算(): 向き=[] __for km in 距離: ___向き.append() __return 向き [] [ここ壊れてます]
420 名前:デフォルトの名無しさん mailto:sage [2020/01/29(水) 17:34:31.08 ID:V4INQ4I7.net] >>414 その2つなら後者を選ぶケースは考えにくいかな 俺の読解力の問題かもしれんが、「for km in 距離:」がよく理解できん 距離はどういうイテレータ? 例えば、距離 = [1, 2, 3, 4, 5] みたいなものと考えればいいの? で各距離の値によって各物体の位置、向き、大きさが決まる?
421 名前:414 [2020/01/29(水) 20:49:58 ID:rr34JdCX.net] >>416 ありがとうございます 一個目みたいにまとめることにします for km in 距離:は 各距離から置く場所や向きや大きさを決めてます
422 名前:デフォルトの名無しさん mailto:sage [2020/01/29(水) 22:13:17.15 ID:V4INQ4I7.net] >>417 各物体の位置・向き・大きさを計算する部分と それを使ってI/O的な処理をする部分は分けておいたほうがいいと思う それぞれ違う理由で変更したくなるから混ざってると後で面倒 きれいに分かれてれば計算しつつ出来た順にI/Oするよう変更するのも簡単 ↓関数/データに分けた場合とオブジェクトにまとめた場合のイメージ https://techiedelight.com/compiler/?n7t7 https://techiedelight.com/compiler/?qDa4
423 名前:414 [2020/01/30(Thu) 01:07:15 ID:TCVWvduC.net] >>418 解説をつけてもらってありがとうございます 入力・出力もどうしようか悩んでいたので 助かります!!
424 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 17:49:07.16 ID:9oqZpWVT.net] raspbian上でwebviewを使用しています。 公式ページのサンプルをコピペしたのですが、そんなattributeは無いとエラーになります。 オブジェクトが持っているattributeの一覧を表示させることは出来ないのでしょうか。
425 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 18:46:06 ID:xpd5gNHP.net] >>420 >>1読んでから端末投げ捨てるか、レンチンしろ
426 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 20:24:40.55 ID:9oqZpWVT.net] >>421 意味不明なんだが?
427 名前:デフォルトの名無しさん [2020/01/30(Thu) 23:03:41 ID:zqJjLosR.net] あっそ じゃあしねよ
428 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 23:10:41 ID:SpgFxTsY.net] >>422 煽りが返ってくるってことはだいたい質問が悪い 公式ページのサンプルってどこの公式だよURLくらい貼れ 何を実行してるかわからないのに答えられるわけないだろ
429 名前:デフォルトの名無しさん [2020/01/30(木) 23:12:46.73 ID:TcPsF5Vj.net] >>423 キモすぎワロタ
430 名前:デフォルトの名無しさん [2020/01/30(木) 23:16:17.43 ID:TcPsF5Vj.net] オブジェクトが持っているattributeの一覧を表示させることは出来ないのでしょうか。 これに答えろってことだろ なにをぶつぶつ言ってるんだよw
431 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 23:18:48.25 ID:N/97jNZ6.net] >>420 import inspect inspect.gemembers(your_object) かな?
432 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 23:38:39 ID:N/97jNZ6.net] >>427 >inspect.gemembers(your_object) getmembers()の間違い dir() や help() でも可
433 名前:420 mailto:sage [2020/01/31(金) 11:20:07.05 ID:NXB8BBj3.net] >>428 教えていただいた方法で表示できました。ありがとうございます。
434 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 17:45:06 ID:KoDF/0eX.net] (´n`).o(429の端末が初期不良期限翌日に壊れますように)
435 名前:デフォルトの名無しさん [2020/01/31(金) 17:48:23 ID:ltLMy86h.net] 惨めだなぁ…
436 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 22:07:10 ID:WYJCj5Ov.net] hoge = "わたしの名前は{0}です" こういう変数hogeは、f-stringで値埋め込むのは無理だよね? hoge.format()するしかないよね
437 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 22:14:17.30 ID:KoDF/0eX.net] >>432 ムリジャナーイ Python! hoge = "わたしの名前は{{0}}です" hoge ↑この2行をこのままコピペ実行してみよう! (3.6.5以降なら確実におk)
438 名前:デフォルトの名無しさん [2020/01/31(金) 23:36:34 ID:BFxfTyah.net] 惨めな上に頭も悪いときたあ
439 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 00:19:43.16 ID:EnxAFhi/.net] >>432 template = lambda: f"わたしの名前は{name}です" name = "foo" f"{template()}" #=> ’わたしの名前はfooです' f-stringのlazy evaluation版はi-stringってので提案されてるらしい https://www.python.org/dev/peps/pep-0501/
440 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 07:59:04.74 ID:caubOhav.net] >>435 なるほどぉ… 出来ることは理解したけど、微妙に読みづらい感があるな ありがとうございました
441 名前:デフォルトの名無しさん [2020/02/01(土) 15:23:41 ID:p+nIpDYx.net] デバックについての質問なのですが evo=[1,5,3,8] ana=[7,6,5,4] for e,a in zip(evo,ana): ____print("aaaa") ____c=a*b ____d=e+c をコピペしてデバッグしてるのですが de=3 a=ana[de] e=evo[de] if 1=1: #for e,a in zip(evo,ana): ___print..... ___......... みたいな感じでif分つけて無理やりインデント合わせてコピペして デバッグしてますが そういうループの途中だけ動きを見る方法でもっといい方法ありませんか?
442 名前:sage [2020/02/01(土) 15:32:30 ID:aHBNrXGA.net] MATLABでいうsimulinkの代用になりそうな物ってありませんか?環境移行したいんですがこれだけどうしても見つからなくて。
443 名前:デフォルトの名無しさん [2020/02/01(土) 15:38:32 ID:fiLTG5Nb.net] evo=[1,5,3,8] ana=[7,6,5,4] for e,a in zip(evo,ana): ____if (e, a) != (8, 4): continue ____print("aaaa") ____c=a*b ____d=e+c
444 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 15:49:16 ID:iBA7Xa3w.net] >>437 デバッガ使えばいいんじゃね? https://docs.python.org/ja/3/library/pdb.html
445 名前:デフォルトの名無しさん [2020/02/01(土) 16:00:39 ID:p+nIpDYx.net] >>439 for の中にifコンテニューですか ありがとうございます >>440 そんなものあったなんて知らなかったです ありがとうございます
446 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 16:10:15 ID:CimOJomw.net] IDEとかエディタ使えない環境なの?
447 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 16:10:30 ID:EnxAFhi/.net] >>437 デバッガでconditional breakpointを設定して 変数が特定の値になった時だけbreakさせる
448 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 16:20:42 ID:EnxAFhi/.net] $ python3 ipdb_conditional_breakpoint.py 1 import ipdb; ipdb.set_trace(context=10); 2 3 b = 2 4 evo=[1,5,3,8] 5 ana=[7,6,5,4] 6 for e,a in zip(evo,ana): 7 ____print("aaaa") 8 ____c=a*b 9 ____d=e+c ipdb> break 7, e == 8 Breakpoint 1 ./ipdb_conditional_breakpoint.py:7 ipdb> c # e ==8 の場合のみ7行目で停止 ipdb> print(e, a) 8 4
449 名前:デフォルトの名無しさん [2020/02/02(日) 22:34:59 ID:nTdekf5z.net] forやdefで使う変数が多くなったときはどうしてますか? 7個ぐらいになってくると 行が長くなって何とかしたほうが良いのか 悩みます 色々ありがとうございます >>442 blenderというソフト内のpython使ってて 本格的なデバッグ機能があまりないのです その辺りは専用スレで聞いてみます
450 名前:デフォルトの名無しさん mailto:sage [2020/02/03(月) 00:07:04 ID:XimuQ1Xy.net] >>445 型にまとめられるものはまとめる 単に行が長いのが困るだけなら改行すればいいだけ あとは*args, **kwargs
451 名前:デフォルトの名無しさん [2020/02/03(月) 00:42:52 ID:M5UXjnSG.net] >>446 ありがとうございます なんでも改行可能なんですね 中身を変数にまとめれるんですね 助かります!!
452 名前:デフォルトの名無しさん mailto:sage [2020/02/03(月) 01:02:38 ID:XimuQ1Xy.net] >>447 なんでもは改行できないよ。 改行できるとこだけ。
453 名前:デフォルトの名無しさん mailto:sage [2020/02/03(月) 01:07:17.80 ID:XimuQ1Xy.net] 2.1.5. Explicit line joining 2.1.6. Implicit line joining https://docs.python.org/3/reference/lexical_analysis.html#explicit-line-joining
454 名前:デフォルトの名無しさん [2020/02/03(月) 12:17:00 ID:62FLJlST.net] >>445 おすすめはせんけど行減らすだけなら a=1 b=2 c=3 のかわりに a,b,c=1,2,3 意味のあるまとまったデータなら別クラスにして hoge=Hoge(1,2,3)
455 名前:デフォルトの名無しさん [2020/02/03(月) 12:20:59 ID:62FLJlST.net] ああそういう意味じゃないのか 制御変数の話なら適当に改行汁 あと blender は漏れも使ってるけど 癖があるので普通の python だと思わない方が良い (普通の python で慣れてる人が使う分には問題無いが) 考え無しにあれを使い続けると糞プログラマになるだけだと思う
456 名前:デフォルトの名無しさん mailto:sage [2020/02/04(火) 23:09:14 ID:0mUTKS9X.net] plt.subplot使ってグラフを2つ表示しています plt.subplot(1, 2, 1) plt.title('attention') plt.subplot(1, 2, 2) plt.title('Non attention') 2つのグラフの下中央に大きなタイトルを表示したいのですが、 なにか良い方法ありますでしょうか?
457 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 10:06:39 ID:FfddlBUI.net] def test(): def test_test(): print("test") があったときに、test_test()を呼び出すにはどうしたらいいですか?
458 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 10:25:09 ID:boA3ajbM.net] ちょっと何言ってるか分からない
459 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 10:41:21.50 ID:d60p+KZz.net] ARM64でビルドしたPythonってどっか落ちてませんか
460 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 11:33:01 ID:FfddlBUI.net] >>454 すみません、インデントが反映されていなくて分かりづらい感じになってしまいました。 ↓のように、クラス内にメソッドがあって、メソッドの中に関数がある場合 どうやって関数を外部から呼び出せばいいのでしょうか? def test(): def test_test(): print("test") 外部ではなく、内部から呼び出すには def test(): def test_test(): print("test") test_test() とすれば呼び出せますが、test()の外から呼び出す方法を知りたいです。
461 名前:デフォルトの名無しさん [2020/02/05(水) 12:38:02.65 ID:fbcJymO4.net] ローカル変数みたいなものだから外部からアクセスはできない
462 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 13:09:59 ID:+QFykdso.net] def test(str): ・def closure(): ・・print(str) ・return closure c = test("closure test"); c()
463 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 13:14:47 ID:d60p+KZz.net] class testclass: def test(self): def test_test(str): print(str) return test_test f = testclass().test() f("aaaaaaa") へぇこんな事できるんだ、何に使えるもの?
464 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 13:23:28.11 ID:FfddlBUI.net] >>458 >>459 ありがとうございます。 今までメソッドは全部selfで書いてたんですが 毎秒何百回も処理するような処理を書くとやたら遅くて 試しにメソッド内部に関数を書いたら処理速度が速くなりました。 selfでメソッドを呼び出すと遅くなるので、処理速度を早くしたいときはローカル関数として定義した方が良いみたいです。
465 名前:デフォルトの名無しさん [2020/02/05(水) 14:20:51 ID:2gxpMPkb.net] >>459 デコレータとか
466 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 15:18:52 ID:6NLusyAl.net] csvの例えば5列目が2,3,5,7,3,5,7,,,,,といろんな数字で並んでるとき、 その列の特定の数字を一括して別の数字に変換して、csv保存したいのですが、サンプルコードを頂けないでしょうか
467 名前:デフォルトの名無しさん [2020/02/05(水) 15:32:28.07 ID:HabtckGA.net] >>462 pandas 置換 🔍
468 名前:デフォルトの名無しさん [2020/02/05(水) 16:46:26 ID:2rKdW1Ec.net] >>452 figureの任意の位置にテキスト表示出来る
469 名前:デフォルトの名無しさん [2020/02/05(水) 16:49:43 ID:2rKdW1Ec.net] >>460 適当なことを言うな
470 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 17:01:00 ID:FfddlBUI.net] >>465 いや、ホントの話
471 名前:デフォルトの名無しさん [2020/02/05(水) 19:05:15 ID:2rKdW1Ec.net] うそだとは言っていない
472 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 19:29:47.90 ID:PnTZcdWz.net] 毎秒何百回程度でやたら遅くなる とか言うのは嘘と言い切ってもいいと思う
473 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 19:56:00 ID:FfddlBUI.net] >>468 いやこれもホントに 処理内容次第なので、処理負荷の低いものなら気づかないですけど timeitとか使わなくても目で見て明らかに遅いレベルまで遅くなったんです 信じてもらえなくても別にいいですけど、僕に得も何もないんで
474 名前:デフォルトの名無しさん [2020/02/05(水) 19:59:06 ID:2rKdW1Ec.net] @staticmethod
475 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 20:21:18 ID:3A2Vd31x.net] cとPHPとシェルとストアドプロシージャ位しか書けないんだけど パイソンでDLバリバリになるには何の書籍から始めるのが良い? やっぱ統計学はやんなきゃ話にならない?
476 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 20:27:09 ID:xJPwpbdq.net] >>471 統計がわからない機械学習エンジニアはただの占い師 ビジネスがわからない機械学習エンジニアはただのベンチマーク厨
477 名前:デフォルトの名無しさん [2020/02/05(水) 20:32:56 ID:V2ceD5vC.net] 敢えて喩えるほど実際から離れていく
478 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 20:45:08 ID:oCA39UVc.net] >>471 はなしにならんので勉強汁
479 名前:デフォルトの名無しさん [2020/02/05(水) 20:45:33 ID:gx9j2avt.net] 統計ってベイズ推定とか?
480 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 20:50:45 ID:Pb0OV2Dy.net] 統計とかエクセルでまとめた方が使いやすくない?
481 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 20:56:17 ID:l5EZ/l0z.net] >>472 俺、機械学習さっぱりわからんが、なんか核心をついているような言葉だが 基礎となる統計がわからない自称機械学習エンジニアはただの占い師 ターゲットのビジネスがわからない自称機械学習エンジニアはただのベンチマーク厨 が正しいんじゃないのか >>471 >cとPHPとシェルとストアドプロシージャ位しか書けないんだけど こんな自己紹介からして、お前はソフトエンジニアではなくプログラムかける土方 ってかんじだろ。 そんな奴が目指しているのは機械学習"エンジニア"ではなく 機械学習を用いる占い師 や機械学習のベンチマークができる厨 じゃないのか? なら、統計学なんてやる必要ないんじゃないか。 エンジニアになりたいなら基礎理論の統計学はしっかりやらんとだめだろうが。 どの分野でもめざせエンジニアなら基礎はしっかりやらないと駄目だろ。 例えばソフトエンジニアなら大学・大学院の情報工学科でやるようなことは 学んでないとな。 と偉そうなこと言っている俺は趣味でプログラミングなんだがな。
482 名前:デフォルトの名無しさん [2020/02/05(水) 20:58:14 ID:V2ceD5vC.net] なげえよカス?
483 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 21:10:16 ID:GCTF3gV7.net] >>469 そこまで言うなら比較用のコードでも出してくれ
484 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 21:10:55 ID:aNozFXKi.net] 長さの割に中身ゼロの長文には参るな >>477は今ではチョロっとライブラリインストールするだけで どんな素人でも始めることのできる機械学習についてまったく分からず おまけにプロでもないアマチュアなのでエンジニアの求人にも必要資格にも全く詳しくないけど 「エンジニアの資格」にだけは一家言ある変な人ってわけだ
485 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 21:20:46 ID:oCA39UVc.net] >>475 ほかにもあるから教科書買ってきて嫁 >>476 きゃつは万能ではないし、 昔はデータ数制限がきつくって、今も(高額な専用ソフトはもちろんだが)Rに劣っている
486 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 21:27:18 ID:ZizT6Tal.net] 簡単なことなんだけどな データがあって、目的が決まっている この二点をクリアできないと機械学習をする意味がない 二点がクリアされたとしても性能がでるという保証はないが
487 名前:デフォルトの名無しさん [2020/02/06(木) 09:04:06.46 ID:GAMNd4TG.net] BeautifulSoupとかいうのを使ってGoogle画像検索結果をスクレイピングしてたけど 多分Google検索結果あたりが変わってとれなくなりました。 html.select('.rg_meta.notranslate') このあたりの仕様が多分変更になったと思うんですが うまく取得できる方法を教えて頂けたら有難いです…。よろしくお願い致します;。
488 名前:デフォルトの名無しさん [2020/02/06(木) 09:10:38.29 ID:76t6g1c3.net] 今後検索結果が変更になる度にここで聞くのかな?(笑)
489 名前:デフォルトの名無しさん [2020/02/06(木) 09:14:57.47 ID:GAMNd4TG.net] >>484 申し訳ありません… でしたら、クラスの指定と思うのですがそのあたりのコツと言いますか 間違いなく出来る方法あたりをお教頂けましたら… 現在 .rg_i というクラスはあるのですが これをもう、 .rg_i. src img href a そのた思いつくものを やれるだけ順番を前後させても、半日以上経過しても進めず 本当に苦しくなってきてしまっておりまして、すみません…。
490 名前:デフォルトの名無しさん mailto:sage [2020/02/06(木) 09:31:11.49 ID:xfRnZ+h4.net] BeautifulSoup使ったことないがググったら答え即でたw
491 名前:デフォルトの名無しさん [2020/02/06(Thu) 09:37:38 ID:GAMNd4TG.net] >>486 すみません…。自分は前後を変えたり何度やっても 空といいますか画像が取得できないので、 お教頂けたら、ありがたいです…。
492 名前:デフォルトの名無しさん [2020/02/06(Thu) 10:35:45 ID:GAMNd4TG.net] >>486 すみませんです…どうやって検索したらよいかお教え頂けましたら…
493 名前:デフォルトの名無しさん [2020/02/06(Thu) 11:07:22 ID:d7NhcEcy.net] 教えてやるからどこかにパースしてるHTMLを全部置け そしてどの要素が欲しいかHTMLの中に <!--この要素が欲しい--> と書け
494 名前:デフォルトの名無しさん mailto:sage [2020/02/06(Thu) 11:20:21 ID:xfRnZ+h4.net] JavaScriptで動的になったからSelenium使えって書いてた
495 名前:デフォルトの名無しさん [2020/02/06(Thu) 11:27:31 ID:GAMNd4TG.net] 有難うございます。 すみません、keywordは山として以下のようにして取得を目指しており それで<!-- --> でほしいのですが 以下の表記方法ではだめでしょうか。 urlKeyword = parse.quote(keyword) url = 'https://www.google.com/search?hl=jp&q=' + urlKeyword + '&btnG=Google+Search&tbs=0&safe=off&tbm=isch' headers = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/10.0",} request = req.Request(url=url, headers=headers) page = req.urlopen(request) html = page.read().decode('utf-8') html = bs4.BeautifulSoup(html, "html.parser") elems = html.select('.rg_meta.notranslate') この最後の.rg_meta.notranslate のあたりで目的の画像を一つ一つ取り出せなくなっていると分析しています。
496 名前:デフォルトの名無しさん [2020/02/06(Thu) 11:28:23 ID:GAMNd4TG.net] 一昨日くらいまでは取れておりました。 現在も、 ではグーグル画像検索そのものが取れてないとか何かブロックされているのか?と言うと elems= の前に 例えば print(html) とするとGoogle画像検索結果の画面全体は取れているのです。 しかしそれは全体像なので、個々の1枚1枚を取得してphpmyadminに格納したり、とかそれが狙いであるので elems = のところでつまずいてはやはりまずい具合です。 そして目的の画像検索結果、 例えば 山で検索して <!-- <img class="rg_i Q4LuWd tx8vtf" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-iid="0" data-iurl="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRFWZJ-G8GOvPEcPPJZqy_IqLTMokKOyW_VAdDON2S_9V6cnOQZ" jsname="Q4LuWd" alt="「山」の画像検索結果" /> --> ↑この要素が欲しいものです ここのimgのclassにrg_i というものがありこれはヒントの一つ?かと想像したりするのですが data-iurl= のこれが取得したい画像のURLだと思います。 URLで hrefでなく こういう書式で表示されているのだな、と思いますが ここを取得したいと思っております。 すみませんが;宜しくお願い致します;
497 名前:デフォルトの名無しさん [2020/02/06(Thu) 11:42:27 ID:GAMNd4TG.net] >>490 左様でございますか。一応使ったことはありますが ちゃんと使いこなせるのかどうか…うーむ…
498 名前:デフォルトの名無しさん mailto:sage [2020/02/06(Thu) 12:10:59 ID:xAE/eJ0Q.net] 改行を含めてfindする方法ってないですか?
499 名前:デフォルトの名無しさん mailto:sage [2020/02/06(木) 12:25:05.18 ID:PruBe/51.net] >>492 他に使ってなさそうで欲しい属性分かってるんだったら elems = html.select('img[data-iurl]') これでよくね あとfirefox10でも47でもないいい加減なUAはやめとけ
500 名前:デフォルトの名無しさん mailto:sage [2020/02/06(Thu) 12:35:55 ID:/hIhK6yv.net] 要素を非同期処理で読み込むから、要素が存在しないとか、 サイトの構成が変わったとか、 XPath/CSS セレクターが間違っているとか、 相手がアクセスをブロックしてくるとか スクレイピングは、相手のサイトを分析するのが難しいのと、 適切に限定される、セレクターを作るのが難しい API が公開されているなら、APIを使った方がよい 漏れは、Ruby で、Selenium WebDriver, Nokogiri などで、 Chrome, Edge などのブラウザーを自動操作して、スクレイピングするけど ここに書いておいた 【VBScript】WSHについて話し合うスレ【JScript】 https://mevius.5ch.net/test/read.cgi/tech/1578522041/24-27
501 名前:デフォルトの名無しさん [2020/02/06(Thu) 12:41:43 ID:zAec24ND.net] >>494 改行=\n または \r\n
502 名前:496 mailto:sage [2020/02/06(Thu) 12:45:42 ID:/hIhK6yv.net] >>492 Base64 は、HTML でもよく使う Base64の文字列で、PNG/JPEG画像を、HTMLファイルに直接埋め込める <img src="data:image/png;base64,xxxxx..." />
503 名前:496 mailto:sage [2020/02/06(木) 12:59:31.10 ID:/hIhK6yv.net] >>492 適切に、1つに限定される、セレクターを作るのが難しい! 以下で、特定できないのか? class="rg_i Q4LuWd tx8vtf" data-iid="0" jsname="Q4LuWd" それか、img 要素の外側で、id など、限定される要素を探すか。 基本的には、idを探さないと特定できない idを振っていない場合は、そのサイト特有のルールを発見しないといけない! 例えば、5ch のスレ内では、id が無いから、 data-id に投稿番号が入っているので、それを使うとか このように、相手のサイトを分析するのが難しい!