- 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 ###
- 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))でどう?
|

|