まえがき
動画ライブ配信、視聴が無料で行えるSHOWROOMというサイトがある。SHOWROOMでは、日々、アイドル/タレント/お笑い/声優からアマチュアの方まで配信を行っている。SHOWROOMでは、視聴者がコメントしたり、無料もしくは有料のアイテムを配信中に投稿すると、配信者へポイントとして還元される。その還元ポイントの中でもカウントという仕組みがある。視聴者はコメントを投稿する代わりに1から50までの数字をコメント欄に入れて送信すると、コメントしたのと同じポイントが配信者に送付される。筆者も日々、好きなアイドルのSHOWROOMを見に行って、この50カウントを行っているのですが、これが面倒くさい。そこで、このSHOWROOMの50カウントをRPAを使って自動化する事を考えてみた。
事前準備
自動化には、PythonとSeleniumを使って行って、Windows10とChromeの環境を使う。まず、Pythonをインストールした後、pipを使って、Seleniumを準備する。
続いてChromのWebDriverをダウンロードして適当なフォルダに展開する。
開発
SHOWROOMのコメントを送信するHTMLのソースは下記のようになっている。
<div id="js-room-comment-wrapper" class="comment-form l-comment-form" >
<form id="js-room-comment">
<select id="js-comment-input-fixed" class="comment-input-fixed hidden mb-b"></select>
<input type="text" class="comment-input-text" id="js-chat-input-comment" placeholder="コメントを投稿" autocomplete="off">
<button type="submit" class="js-room-comment-btn comment-btn">
送信
</button>
</form>
</div>
ここで、class:comment-input-textのテキストボックスに、1~50の数字を入れてclass:comment-btnのボタンを押す所を自動化する。
from selenium import webdriver
import time
def cntshowroom():
driver = webdriver.Chrome("chromedriver.exe")
driver.get("https://www.showroom-live.com/")
var = input("Login and Open target Room. After that input any key.:")
elem_comment_text = driver.find_element_by_class_name("comment-input-text")
elem_comment_send = driver.find_element_by_class_name("comment-btn")
for i in range(1,50):
elem_comment_text.send_keys(i)
while True:
time.sleep(1)
elem_comment_send.click()
vv = elem_comment_text.get_attribute("value")
if vv=="":
break
print(i)
print "50 count finish"
cntshowroom();
SHOWROOMのURLを起動して後、ログインと目的の配信者のルームに入る所は、利用者で行う。その間、inputで待機し、何らの文字が入力されると、50カウントを開始する。カウントが完了すると"50 count finish"と表示する。実行中の画面例が下記となる。
まとめ
Pytho+Seleniumを使って、SHOWROOMの50カウントを自動化するRPAを試してみた。本来の業務効率化の使われ方とは、異なるかもしれないが、同じ嗜好のエンジニアの方、Seleniumで本当の業務効率化を目指している方の一助になれば幸い。
今後は、ログインの自動化、星投げ、星集めについても自動化を目指す。