« 太陽の赤経・赤緯・地心距離をExcelで求める(海洋情報部の計算式) 2018年版 | トップページ | Showroomでの自動星集めの試み (2) 配信ルームの一覧を作る »

2017年12月26日 (火)

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 オンライブ画面を開く
Screenshot01


ミュージック枠に移動
Screenshot02


リストの先頭にある配信者の画面を開く
Screenshot03

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) 配信ルームの一覧を作る »

パソコン・インターネット」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Showroomでの自動星集めの試み (1):

« 太陽の赤経・赤緯・地心距離をExcelで求める(海洋情報部の計算式) 2018年版 | トップページ | Showroomでの自動星集めの試み (2) 配信ルームの一覧を作る »

フォト

サイト内検索

  • 記事を探されるんでしたらこれがいちばん早くて確実です。私も使ってます (^^;; 検索窓が表示されるのにちょっと時間がかかるのはどうにかしてほしいです。

新着記事

リンク元別アクセス数

  • (アクセス元≒リンク元、原則PCのみ・ドメイン別、サイト内等除く)

人気記事ランキング

  • (原則PCのみ、直近2週間)
無料ブログはココログ