NEUTRINO入門
目標はきりたんにポルカドットスティングレイのパンドラボックスを歌わせることです
やる事
歌詞を入力
music.xmlに変換
neutrinoに突っ込んでエラー発生せずに生成できるまで
やっていき
簡単なmidiに歌詞を付与 きりたんに歌わせるまで頑張る
歌詞が著作件?簡単にコピペできなくて
clipBoardにコピーされた画像からGoogle Vision APiでOCRして res or format "text or json"を返すものを関数化しました powershell
クリップボードの画像をdesktopに保存する → BASE64でencodeする → ocr apiを叩く · GitHub
明日はこれやっていきたいです
Google Docあらゆるものにtutorialどんどん増えてうれしい...
あとgpt coplilot生まれてくれてありがとう
D-POS 全取得DL JANコード プルダウン選択をjsで
D-POSが新しくなったらしくRPAの更新作業をしました。
その際、少し面倒な事をしたので共有です。
やりたい事
D-POSデータの全取得DLの自動化
面倒な事
全POSデータ取得設定の[JANコード]選択時に5000以上はプルダウンの全選択ができない
30000件以上はDLできない
以前はJANコード分割されてたみたいですね
なにか理由があるのでしょう
D-POSの機能で使用できる全件取得は5000件までなのでjsで全取得します。
やる事
プルダウンはjsで順次追加されるので開発者用のコンソールで高速スクロールします。
レンダリングされた状態の要素をclick() していきます。checked = trueにしても※1fetchされません。
設定を保存します。
やっていきます。
まずスクロールしてレンダリングさせます。
値は適当に調整してください。
自分は90000件くらいで2000回くらい回ってました。
回り切ったら止めます
全選択します
90000件くらい選択されましたが件数の上限は30000件周辺なのでDL出来ません。ので分割します。
上限値を確認します。
30000件でした。
listの要素数が460個だったので4分割してDLしようと思います。
115まで選択した所、23200でした。他も多少件数に差はあるものの30000件は超えなさそうです。
後はレンダリングされているか確認しつつ115, 230, 345, 460で条件を変更し実行して完了です。
※1 内部にtableauがiframeで埋め込まれていて通信はどのように行われているのか気になり(DOS攻撃になってないか)ネットワークを確認した所、以下のようにリクエスト先に送信を行っていました。
短時間に複数クリックされた場合、リクエストをまとめる。
categorical-filter-by-indexとしてまとめてリクエスト処理されているのが確認できます。
大丈夫そうですね。ペイロードのfilterAddIndicesやRemoveIndicesからリストとして渡されて一回のリクエストが送信されている事が確認できました。
また%5Bsqlploxy~で始まる https://tableau.kaiba-datacompass.com/vizql/w/_ver1_0_0_hogehoge/v/sheet0/getfilteritems/sessions/hogehogehoge/sheets/分析対象_商品(JAN)_カテゴリー/filters/%5Bsqlproxy.hogehogehogehoge.%5Bnone%3Aitem_code_name%3Ank%5D?fromIndex=800&toIndex=999&domain=cascading
リクエストはドロップダウンリストの呼び出しです。
カスケードレプリケーションとかいうものも使用しているみたいですね
うーむ、わからない..
automation anywhere に入門しました。 HTML Parserを使用してパースする。
最近RPAを初めて触ったのですがその際に詰まった事があり、参考記事が少なかったので共有します。
依頼された要件は毎日手動更新しているものがあるので、スクレイピングをして自動化してほしいという内容です。(対象は自社サイト)
automation anywhereを使用して作成する事も要件にあり、これのみで作成しています。
まず作成したものの全容です。
csvのURLからサイトの特定のtextを取得してcsvに格納、更新するというものです。
csv,ループなど..プログラムの構文と同じ感じで使用できます。
REST アクションではheader、プロキシなど設定ができます。
モバイルからのアクセスが必要、URLリストが同一オリジンだった為
User-Agentとkeep-aliveを付与して送信します。
レスポンスは辞書型で返してくれます。
resDictのBodyを※1HTML Parserの CSSセレクタ検索でパースします。
成功するとlistにdictを格納して返してくれます。
この表示確認出来そうなdictを見るとエラー発生で落ちます。なんでや。※2
なのでこの中の値を確認する為にループを使用する必要があります。
参照できました。
後はリストからも参照は可能なので $parse_html[0]{text}$ でも値を取り出せます。
stringは通す、任意も通す、dictは通さない
任意のアスタリスクがanyに見えてしまうよ..
※1
HTML Parser
英語なのでここに突っ込んでください
※2
多次元があるので再帰とか使用しないと大変だからなのかな???
parserの実装内容
ちなみにPythonで実行した場合
Pythonをautomation anywhereで実行する事を試したのですがtutorialやHello worldも実行できず、記事も見当たらなかったので
良かったらPythonの実行方法を知っている方がいれば教えてください