Showroomでの自動星集めの試み (1)
最近ブログの更新が滞っています。いろいろと原因があるのですが、その一つとしてShowroomに一生懸命になりすぎたことがあります。“推し”にイベントでいい結果を出してもらおうと思うとたくさん星を集めそれを効率的に投げる必要がでてきます。作戦を練ったり星を集めたり際限なく時間がかかります。
星を投げる方はよく知られているようにPCだったらGoogle Chrome上でShowroom Toolboxを使えば改善します。私は“一気投げ”と呼んでいるのですが、配信者さんやリスナーさんによっては“レインボー投げ”(五色の星がまとめて飛ぶからでしょう、でも虹は七色?)、(どっちかというと流星雨じゃね?と私は思うのですが)流星群、星シャワー(種シャワー)などいろいろな呼び方がされているやつです。
なおShowroom Toolboxを使えばカウント操作も自動化が可能です。
となると“星集め”をどう合理化するかということが問題になります。ググるとそれらしいのも見つかるのですが、どうも今ひとつという印象です。
ないなら自分で作ってしまえ、ということで“試行錯誤”をはじめました。まだはじめたばっかりで完成は程遠いのであくまで“試み“です。完成してから記事にすべきだとも思うのですが、こういうことができるんだったら自分でやってみようかと思う方もいらっしゃると思うのでひとまず記事にしてみることにしました。そもそもこういう方法で完成するかどうかもよくわかりません。
追記 最新の“成果”は以下にあります。
「Showroom - 自動星集め・星投げ・カウントツール)」
「Showroom - イベントの獲得ポイント数を取得して記録するツール」
=========
要するにWebブラウザの自動操作ができればいいはずで、そういうのキーワードにググったらこういうのが見つかりました。
「Qiita @0829 - Goではじめてみたブラウザの自動操作」
Go がどんな言語かSelenium がどういうものかわかってませんし、これが他の方法よりすぐれているかどうかもわかりませんが、いろいろやれそうな感じなので、この方法を試してみることにしました。
まず環境を構築する必要があるわけですが、概略次のようになります。
1. Go のインストール
2. Gitのインストール
2. agoutiの導入
4. WebDriver(ChromeDriver)の導入
上の記事や
「Qiita @masaru_b_cl - Windows上でGo言語初心者向け学習環境を作る」
を参考にさせていただき環境を作りましたが、注意すべきことがいくつかありました。
GoのインストールはふつうにWindowsインストーラを使ったものです。パスもインストーラが設定します。ただGOPATHは設定されません。されませんが何もしないと%HOMTEPATH%GoがGOPATHとみなされるようです。必要によって自分の環境にあわせて設定すればいいでしょう。
Gitもインストーラを使えばいいのですが、やたらといろいろ聞いてきます。私はぜんぶデフォルトでインストールしてしまいました。またGitはパスは自分で追加する必要があります。
agoutiは“go get”で導入できます。なかなか便利な方法だと感心しました。
ChromeDriverはzipで提供されており解凍すると.exeファイルができるのでこれをGoのbinディレクトリーに配置しました。
--------
まず「Qiita @0829 - Goではじめてみたブラウザの自動操作」 にあるサンプルプログラムが動作するか確かめます。
ここから先は五里霧中ですが、見よう見まねで
Showroomのオンライブ画面を開き
ミュージック枠を選択し
最初の配信者の画面を開く
Showroom オンライブ画面を開く
ミュージック枠に移動
リストの先頭にある配信者の画面を開く
Webブラウザの操作自体はできているようです。
これからの課題はまず
1. 配信者が星集めの対象となるかチェック(すでに星をもらっていないか確認)
2. 画面を開いたあと星がもらえるまでウェイトする。
の二つがあります。これらの実現過程で、配信者のリストを取得する、というようなのが必要になりそうです。
できれば星(種)をいただいたお礼に50カウントするという機能も付け加えたいものです。
なお上の画面はログインしていませんのでこのままウェイトしても星がもらえるわけではありません。ログインの問題についても「Qiita @0829 - Goではじめてみたブラウザの自動操作」 に参考になる記述があります。
------
上の操作を行ったときのソース
package main
import "github.com/sclevine/agouti"
func main() {
// Chromeを利用することを宣言
agoutiDriver := agouti.ChromeDriver()
agoutiDriver.Start()
defer agoutiDriver.Stop()
page, _ := agoutiDriver.NewPage()
// 自動操作 1 オンライブ画面を開く
page.Navigate("https://www.showroom-live.com/onlive")
page.Screenshot("Screenshot01.png")
// 自動操作 2 ミュージック枠を選択する
page.Find("#js-categorymenu-list > li:nth-child(4)").Click()
page.Screenshot("Screenshot02.png")
// 自動操作 3 マイニチミュージックの最初の配信者の画面を開く
page.Find("#js-onlive-collection > div > section:nth-child(1) > ul > li:nth-child(1) > div > div > div.listcard-image > div.listcard-overview > div > a.js-room-link.listcard-join-btn").Click()
page.Screenshot("Screenshot03.png")
}
-------------------------
参考
「Showroom - 自動星集め・星投げ・カウントツール)」 (使用法とソースつき)
「Showroom - 自動三周ツール(もう一つの自動星集め・星投げ・カウントツール)」
「Showroom - イベントの獲得ポイント数を取得して記録するツール」
「Showroom - 福引するプログラムとその結果 (1)」
「Showroomの複数アカウント(複アカ、複垢)について考えてみた(1)」
「Showroom - 複数アカウント(複垢)問題の真実 - 実験計画」
「Showroomの重複アカウント(複垢)減算はこうして起きる」
「Showroom - イベント結果データ」
「Showroomでの自動星集めの試み (3) ガチイベ、最後の5分間
「Showroom ラスカルイベの最後の5分間」
「Showroomでの自動星集めの試み (1)」
「Showroomでの自動星集めの試み (2) 配信ルームの一覧を作る」
「Showroomでの自動星集めの試み (4) 星集めツール」
「Showroomでひたすらリスナーレベルを上げるための星集めツール(Go/Agouti)」
「超初心者のGo言語/agouti - ブラウザ操作の基本の基本」
「超初心者のGo言語 - 複数の戻り値をもつ関数」
「超初心者のGo言語 - もっとも簡単なGoroutine(並列処理)」
---------------------
「GoDoc - package agouti」
「Qiita @0829 - Goではじめてみたブラウザの自動操作」
「Qiita @tenten0213 - agoutiというWebDriverクライアントを使って面倒な作業を自動化する」
「Qiita @masaru_b_cl - Windows上でGo言語初心者向け学習環境を作る」
「はじめてのGo言語」
「天才まくまくノート - まくまく Hugo/Go ノート - 関数を定義する (func)」
「Qiita @TakaakiFuruse - Golang Goの並列処理を学ぶ(goroutine, channel)」
「Qiita @To_BB - Rubyエンジニアがゴルーチン(Go言語)を学んでみた【初心者向け】」
「Qiita @fukumone - goroutine 使い方まとめ」
« 太陽の赤経・赤緯・地心距離をExcelで求める(海洋情報部の計算式) 2018年版 | トップページ | Showroomでの自動星集めの試み (2) 配信ルームの一覧を作る »
「パソコン・インターネット」カテゴリの記事
- さくらインターネットのレンタルサーバーでGOで書いたCGIを動かした(苦労)話(2021.04.19)
- SHOWROOMのAPI - 「ライブ情報」の取得(GO言語のソースつき)(2019.10.26)
- SHOWROOM 星集め・星投げツール スケジュールの詳細化 BreakDownSchedule() (三周のやり方を例に)(2019.09.25)
- SHOWROOM 新・自動三周ツール -- GO言語によるブラウザ制御 (1) main()(2019.09.17)
この記事へのコメントは終了しました。
« 太陽の赤経・赤緯・地心距離をExcelで求める(海洋情報部の計算式) 2018年版 | トップページ | Showroomでの自動星集めの試み (2) 配信ルームの一覧を作る »
コメント