- 1 名前:デフォルトの名無しさん mailto:age [2021/06/09(水) 21:05:44.61 ID:zRBfpo4e.net]
- 当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。 「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。 このスレッドは「お勉強」スレのほうには書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 ★エラーを解決したい場合★は、 表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、 実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。 Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★ 【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、 プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。 ttps://techiedelight.com/compiler/ Run Code機能あり。 ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ◇Python公式◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi 〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その53 https://mevius.5ch.net/test/read.cgi/tech/1615846784/ 次スレたては >>985 あたりが挑戦する。 ### END OF TEMPLATE ###
- 352 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 11:10:07.04 ID:4WArcuIG.net]
- >>350
その例だと同じだけど複数から継承するようなクラスを使う場合は super()が返すものが普通に想像するものとは違ってくるケースもあるので注意が必要 https://fuhm.net/super-harmful/
- 353 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 19:50:10.58 ID:QV5M7VnV.net]
- >>347
数学と無関係ではないよ、加群としてとらえても矛盾のない演算になってるでしょ
- 354 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 20:27:18.44 ID:HIUYKm1A.net]
- それは*3が同じものを3つ足し合わせなさいという
常識的な意味合いをわかりやすさのために利用してるだけで 数学的なことなら割り算もあるでしょ
- 355 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 21:40:52.58 ID:4WArcuIG.net]
- 常識的な意味合いかぁ・・・
演算子オーバーロードの悪い見本にしか見えない
- 356 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 01:00:18.86 ID:o9TqNFAF.net]
- >>351
>>352 ありがとうございました ある本に説明もなく両方の記載があったので悩んでました この機会に多重継承も勉強しようと思います
- 357 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 05:15:40.15 ID:eWSxSU0S.net]
- 数学っぽくやるなら
[3]*3->[9] [1, 2]*3->[3, 6] のほうがより直感的だった気はする
- 358 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 05:42:16.34 ID:QsXB5/qu.net]
- numpyはそうなってるね
- 359 名前:デフォルトの名無しさん [2021/07/13(火) 11:39:29.89 ID:Oq4/PEVt.net]
- pythonバージョン3.8.1で次のようなことをしようとしていますが、関数の配置に困っています。
次にするイベントを抽選する ↓ イベントを実行する ↓ イベント終了後にイベント抽選へ戻る しかし、これだとイベントを抽選する関数をイベントの関数より上に置くとイベント抽選の関数がイベントの関数を認識してくれず、 下に置くと、各イベントの関数がイベント抽選の関数を認識してくれません。 なんとか動かす方法はないものでしょうか?
- 360 名前:デフォルトの名無しさん [2021/07/13(火) 11:45:58.98 ID:uAPVX+Xy.net]
- 5chのこの板のAndroid版のスレタイトル一覧を取得したいのですが、スレタイトル部分だけ抜けてしまいます。
htmlを見ると、スレタイトル部分はjava scriptを呼び出して(?)表示しているようです。 このような別から呼び出す仕組みの検索語だけでも知りたいです。 実行環境はWindows10のcolabです。 何卒よろしくお願いします。 以下がソースとhtml抜粋です。 https://pastebin.com/dq4FFsM3
- 361 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 11:52:22.48 ID:eWSxSU0S.net]
- 相互参照は常に避けるよう心がけるべき。
回避する方法はいろいろあるけど、 イベント抽選関数はイベントの関数に引数として渡してあげるとか、 イベントの関数はすべて同じ引数、戻り値にしておいて、イベント抽選システムへ予め登録しておく方式にするとか
- 362 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 11:55:28.21 ID:I5G4+d/9.net]
- 知らんけどmain関数のなかにwhile True: 抽選関数()
みたいにしてループさせて抽選されたイベント自体は抽選関数を呼ばなければいいだけじゃないの
- 363 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 11:59:46.95 ID:0QNuXsy/.net]
- ttps://mevius.5ch.net/tech/subject.txt
> スレタイトル一覧を取得したい > このような別から呼び出す仕組みの検索語だけでも知りたい どっち? スレタイ取得ならsubject.txt読ませればいいじゃん わざわざしかもitestのhtmlをスクレイピングする理由あるの?
- 364 名前:デフォルトの名無しさん [2021/07/13(火) 12:22:40.44 ID:WUJYnH4r.net]
- >>354-355
*3がどう展開されるかより もっと深刻な問題は [[?]]*Nの内側の[?]はコピーされていないということだろ
- 365 名前:デフォルトの名無しさん [2021/07/13(火) 12:24:59.10 ID:WUJYnH4r.net]
- >>359
前方参照でぐぐれ
- 366 名前:デフォルトの名無しさん [2021/07/13(火) 12:26:33.03 ID:WUJYnH4r.net]
- >>360
5chはスクレイピング禁止
- 367 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 12:31:27.78 ID:QsXB5/qu.net]
- >>359
イベントの関数定義と、抽選・実行をする処理とはファイルを分けて 前者を後者のファイルでimportして使う 1ファイルでできなくもないけど モジュール分割を早めに覚えておいたほうが散らかりにくい
- 368 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 12:43:35.25 ID:dtNqNBdW.net]
- >>360
Ruby, selenium-webdriver では、 execute_script で、そのまま、JavaScript ソースコードを実行できる ただし、5ch で頻繁にスクレイピングすると、アク禁にされるかも require "selenium-webdriver" options = Selenium::WebDriver::Chrome::Options.new options.add_option( :detach, true ) # ブラウザを切り放す options.add_argument( '--start-maximized' ) # 画面最大 driver = Selenium::WebDriver.for :chrome, options: options driver.manage.timeouts.implicit_wait = 15 # 要素の検索の timeout url = "サイトのURL" driver.navigate.to url # 移動する js_code = <<"EOT" var elem = document.getElementById( 'abc' ); EOT driver.execute_script js_code # JavaScript を実行
- 369 名前:368 mailto:sage [2021/07/13(火) 13:03:34.95 ID:dtNqNBdW.net]
- 5ch は最初に、空のHTML を送ってきてから、
その後、JavaScript(Ajax)で通信して、内容を取り込む だから単に、Ruby のNokogiri などでスクレイピングをしても、 空のHTML が取れるだけで、まだ内容が読み込まれていない だから、15秒ぐらいスリープして、内容が読み込まれるまで待つ必要がある または、selenium-webdriver で、ブラウザを自動操作して、 driver.manage.timeouts.implicit_wait = 15 # 要素の検索の timeout みたいに、要素が存在しない場合に、何秒待つか指定する
- 370 名前:359 [2021/07/13(火) 13:16:57.35 ID:Oq4/PEVt.net]
- ご回答ありがとうございました。
私があまりに初心者過ぎて、せっかくの具体的なご回答をほぼ理解できませんでしたが、 この状態を相互参照と呼ぶことが分かってようやくググることができ、 >>362さんのレスから着想を得て、main関数を作ってプログラムを全部括れば動くということが判明しました。 以上ご報告と御礼申し上げます。
- 371 名前:360 [2021/07/13(火) 17:54:03.79 ID:28i3hfQd.net]
- >>368
ありがとうございます。 Ajaxという技術なのですね。 webdriverでwaitを入れたところ取得できました。 >>363 すいません説明不足でした。 実はPC版はシンプルなため取得できていました。 勉強のためにAndroid版も見てみようと思いやってみたところ、取得できなかったためお聞きしました。 皆様、勉強になりました。 ありがとうございました。
- 372 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 18:33:25.76 ID:KwvhlQcy.net]
- >>354
そのツッコミをするなら、群と体の違いについて理解しようか。 掛け算があっても、割り算が必ずしも定義できるとは限らない。
- 373 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 20:54:54.99 ID:4WrY8hy5.net]
- 何このruby基地外の自作自演
きっしょ
- 374 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 02:12:23.66 ID:0WF/Cs9d.net]
- スクレイピングでrequestsで上手く取得できないサイトはSeleniumで取得するようにしてるんだけどこれにThreadPoolExecutorを使用するとしたらどういう書き方すればいいの
今までは複数のサイトのURLが入ったリストをfor文で回しつつif文でドメインが一致するかどうかでrequestsとSeleniumを使い分けていたけど非同期にするとなるとさっぱりわからん
- 375 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 12:00:52.16 ID:Rdfymp1t.net]
- クラスのメンバをforループのように回す方法はないですか?イメージは、
class Test: a=0 b=0 c=0 def _print(self): for member in self: print(member) みたいなことをやりたいです。
- 376 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 12:05:26.72 ID:erbvpp8v.net]
- __iter__か__getitem__を定義すればいけるはず
- 377 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 12:46:48.66 ID:82cJAwkj.net]
- 試してないけど、
for v in vars(self): print(getatter(self, v))
- 378 名前:デフォルトの名無しさん [2021/07/15(木) 15:25:55.52 ID:ygp86UHP.net]
- https://docs.python.org/ja/3/library/inspect.html
https://www.atmarkit.co.jp/ait/articles/1612/09/news030_3.html
- 379 名前:デフォルトの名無しさん [2021/07/15(木) 16:37:18.28 ID:0u9iXN8m.net]
- そういうクラスのためのdataclass
astuple, asdictでイテレートもできる。 自分で用意できないクラスのオブジェクトの時は、dir()で列挙した後にごにょごにょしていく必要があるけど。
- 380 名前:デフォルトの名無しさん [2021/07/15(木) 16:50:42.66 ID:TtIRjd2i.net]
- この度pyinstallerでどのshell環境でも動作するコマンドを作成しました。
しかし5年前くらいのIntelMacでさえ快適に動作しますが、 M1macbookではかなりもっさりして遅いのです。 これはarm64アーキテクチャのせいで遅い可能性はありますか?? またこういったケースでの改善策などありますか?? arm64用にコンパイル方法などありましたら教えてください。 コマンドはスクレイピングした結果を別ファイルに落とす シンプルなコマンドです。 shellscriptだとちょい面倒だったのでpythonで書きました。
- 381 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 20:50:47.41 ID:Rdfymp1t.net]
- ありがとうございますが、
>>377だと順番が毎回ランダムになる >>378だと順番がアルファベット順になる?(多分) csvの要素と対応付けたいので定義順に出てくれないと困ってしまうのです・・ >>379はバージョン不足で不可。(3.5系) 1番目が順不定になるのも多分dictの順番が保持されてないせいだと思いますしやっぱり素直にアプデですかねぇ。。。こんな仕様にしたのほんとに誰ですか
- 382 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 21:02:10.64 ID:gFOIdhYR.net]
- >>374
AWS なら、Lambda, SQS などを使えば?
- 383 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 21:48:55.17 ID:NjXHl1NW.net]
- >>381
for v in sorted(vars(self))でどう?
|

|