pythonでプログラミング始めるわ
1 ブラウザの拡張機能を作って、画像を数回の操作でダウンロードできるようにする
javascriptわかんないからこれは多分むり
2 pythonでwebスクレイピングしてその画像に付けられたタグや、作者、アップロード日などの情報を取得する
3 ファイル管理ソフトに画像を取り込んで2で得た情報を自動で登録する 管理ソフトにはeagleを使う
画像1枚ずつにjsonが用意されてタグとかを記述する方式
おおまかな計画は出来たし勉強すればいけるやろ
がんばるわ励ましてくれ まずはpythonをインストールするわよオホホホホ ・懸念事項
画像を管理ソフトに自動取り込みしてメタデータを保存する辺りがムズそう
jsonに記述されるメタデータには画像ごとのidが含まれてるけどその生成方法とか色々わからん
だから自前のプログラムをこさえて自動登録することは難しそう
指定したフォルダ内の画像を随時自動で取り込む機能が管理ソフトにあるからそれを使うことを今の所想定している しかもソフトは取り込み元の画像の現物ではなく、複製したものを参照してる
スクレイピングで取得したメタデータを書き込む相手をどうやって見つけるのかわからん 画像を取り込んで複製するときはファイル名を引き継がずによーわからん文字列にされるから簡単に特定できる方法がない
元ファイルの作成日時もメタデータに書かれてたような気がするがそれでいけるか? コマンドプロンプトのフォント変えようとしたら途中でフォントを消せなくなったりしてめっちゃ苦労した 進展
eagleが扱ってるjsonのメタデータを外から勝手に書き換えられるか実験した
1つ目はライブラリ全体のタグリストのデータに付け足してみてどうなるか。ソフトを起動してリストを表示しても増えてなかったけど、画像にタグ付けをするときの入力予想のとこきは表示されてた。今まで使ったことが無いタグを登録するときだけは手動で操作が必要かも?
2つ目に各画像のタグを増やしてみた。これはちゃんと反映してくれた。これで外部から操作できるとわかった。よかった
ただ不安なのが、ソフトを起動してからjsonファイルを見直してみるとタグの順番が入れ替わってたりすること。調べたら配列の要素の順番は保証されないとか書いてあるから杞憂かもしれんがよくわからんから保留 eagleに画像を取り込んだときファイル名が勝手に書き換えられると思い込んでたけど昨日確認してみたらそんなことなかった
ソースの画像と複製された画像2つをtxtにしてexcelで文字列の比較をしたが完全に一致てたわ。画像自体には一切手を加えずメタデータだけに書き込む可能性が高い スクレイピングのこととか機械学習のこととかちょこっとだけ載ってる入門書勝手にパラパラめくってみたけど後半何が書いてあるのかさっぱりわからんな
なんか単語がドット.で繋がってる文がexcelのvbaみたいでムズそう
関数なのか変数なのかよくわからんやつ〜〜 門をくぐらせてくれるなら十分よ
まだ「たのもー!!」って言ったばかりなんだから 本の応用編以外はとりま一周終わったからtkinterいじってみてる
テトリス作ろうとしてる
たのち tkinter触り終わったら次はpyqtであそぼ
面白いよこれ テトリス制作中々進まん
いきなり自力で作るのはさすがに身の程知らずだったわ
ブロックが埋まった行を消去するはずなのにその上側全部も消されてまうから笑うわ eagle(ファイル管理ソフト)に画像を自動で登録するのも自前でプログラム作らないと行けないと思いこんでたが今調べたら公式APIがあるっぽいわ
無いものと勝手に思い込んでたこのばかちんめ
これならだいぶ楽になるわありがてー python内でjsを直接実行するライブラリも調べたけど色々ムズそう
pythonとの間にjsonをかませて、apiの実行はhtml内にスクリプト書くことにするわ
jsonの読み書きくらいなら流石にできるだろ
pythonでwebスクレイピングして、画像のurl・タイトル・タグ等を取得
↓書き込み
自前のjsonファイル(eagleが扱うメタデータとは別物)
↓読み込み
index.htmlでapi実行
これでいけるんちゃうか? 最初に書くはずなのに忘れてたわ。apiはjavascriptで実行するっぽい
httpリクエストが送れればどんな方法でもいいのかもしれないけど、サンプルコードをパクんないと自分には無理だ
https://api.eagle.cool/item/add-from-urls >>22
Javascriptはfetchのためだけなので、pythonだけでもurllibとjsonで実現できるんじゃない? >>23 できました!!
言語間でデータ型をどうすり合わせるのかとか全くわからなくて不安だったけど、ライブラリが強力だから楽ちんだ……
助かったm(_ _)m感謝
https://i.imgur.com/qf6YFsJ.jpg ランサーズでパイソンを納品する方法についてです
私はターミナルを使って実行しているのですが、納品する場合はどのようにしたらいいですか それって取引先に聞いたほうがいいんじゃね
わしゃニートだからわからんが、.pyのままソースコードを提出したりpyinstallerで実行ファイルにまとめたりとかを指定されるもんじゃないの? requestsとBeautifulSoupでデータをゲットして管理ソフトに登録するまでの自動化に成功した
まだ1つのサイトでしかできないが他に応用するのはそこまで苦労しないっしょ
イエイ 本当にムズイのはここからだぁ
javascruptで拡張機能作りたいし
あとはタグのリストを作ってサイト間で同音異義語になってるものをまとめたり、要らないものを捨てたりしたい
アカウントのログイン、フォロー新着チェックとかも
うわあ chromeの拡張機能の作り方わけわからん
ヒーヒー言いながら日本語で解説してくれてるサイトと公式リファレンスをメモしてやっと概要が掴めてきた
明日から少しずつ作ってく 表示中のサイトにDOM操作をするスクリプトと、ストレージに書き込んだりとか高度な処理をするスクリプトを分離してやり取りせなあかんらしい。そのイベント処理がまだイマイチわからぬ
A(イベント発生)→B(コールバック)とC→Bみたいに複数の種類の通信をしたいとき、指定した送り主と受け取り側を一対一に繫げる記述とか無いの「かも」しれん
addListenerメソッドが沢山あったらイベントが起きるたびに全部動くってこと???ひぃぃ
各コールバック関数の中で最初にイベントの内容を確認して、人違いなら即returnすりゃいいの?sendMessageメソッド側が受け取るレスポンスはどうなんの?nullを沢山受け取るの?ひぃぃ addListener1個置いて中で場合分けすりゃええんじゃね connectっていうメソッド名で長期的にやり取りできるやつがあるっぽいがこれ良さそうポート名を設定して、送受信が一対一に結ばれるっぽい イベントリスナーが複数のjsファイルにあって1つにまとめられないときは全てが発火して最初に帰ってきたリスポンスだけ受け取るらしい
……わからん ヘ(。□°)ヘ
https://developer.chrome.com/docs/extensions/mv3/messaging/#simple 2つのファイルに1つずつイベントリスナーを設置して実験
アクセス中のページに適応するdom操作向けのスクリプト(content script)でボタンを配置
ブラウザ右上の拡張機能アイコンを押したときのポップアップページ(action)と、API全盛りの処理任せ役スクリプト(background)にそれぞれイベントリスナー
結果 : ポップアップを開いてるときしかactionのスクリプトは動作しないっぽい
開いてるときはactionとbackgroudの両方ともちゃんとイベントを受け取ってるけど、何故かレスポンスは必ずactionから帰ってくる
actionに無駄なfor分加えて処理遅らせようとしても変わらない
……???更に謎が深まった…… chrome拡張機能ムズいわ。特にファイル周り
デフォルトのダウンロード先の設定を無視して特定の場所に保存したり、その日集めた分のデータを単一のファイルにまとめたりしたいができましぇん
のでDjangoでローカルサーバーこさえて仕事を任せられないか試して見る
こっちはこっちでムズいが日本語の解説が豊富だからありがてぇ