etypingをseleniumとpythonで自動化する



目次

  1. 前回までのあらすじ

  2. コード

  3. コードの解説

  4. 結果

前回までのあらすじ

寿司打を自動化する(python, selenium)

では、寿司打をpythonとseleniumで自動化しました。


寿司打のseleniumでの自動化はかなり手強かったですが、その分充実感がありました

スクレイピングやseleniumでの自動化はなんだか山に登っている気分ですね
複雑なサイトや、セキュリティチェックが厳しければ厳しいほど燃えるというか

そんな風に一つの山を越えると、他の山も越えたくなるのがスクレイパーの魂ですね
寿司打という富士山を越した今、他の山で今の自分の実力を計りたい!
そんなスクレイパーな私が次の山として選んだのが次のサイトです

https://www.e-typing.ne.jp/roma/check/

このサイトも同じく、タイピングの練習用のサイトです
名前はetyping
シンプルでわかりやすい名前のサイトですね
少なくとも寿司打よりはわかりやすい



自動化処理を行うソースコード

ソースコードは以下の通りです。



from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

url='https://www.e-typing.ne.jp/roma/check/'
driver = webdriver.Chrome("/Users/fenganling/Downloads/chromedriver")
driver.get(url)

# 今すぐチェック!をクリック
driver.find_element_by_class_name('edro').click()

time.sleep(1)

# モーダルにスイッチ
driver.switch_to_frame('typing_content')


_ = input("input enter")

try:
    while True:
        driver.find_element_by_tag_name("body").send_keys("abcdefghijklnmopqrstuvwxyz-")
except:
    import traceback
    traceback.print_exc()
    driver.close()
            


繰り返しになりますが、「/Users/fenganling/Downloads/chromedriver」 はご自身のCHromeDriverをインストールした先のパスを指定してください


selenium、pythonコードの解説

まずはいつも通り
driver.get(url)
で指定したページに移動します



次にこの部分
    
      # 今すぐチェック!をクリック
driver.find_element_by_class_name('edro').click()
  
ここではedroという特殊な名前が出てきますが、これはこのサイトのhtmlで使っている特殊なclass名です。
この部分ではclass名がedroな要素をclickしろという命令を実行しています。


次にここの部分

    # モーダルにスイッチ
driver.switch_to_frame('typing_content')
  
ここの部分では「モーダルウィンドウ」にスイッチしています。
「モーダルウィンドウ」とは、簡単に言えばurlが変わらずになんらかのアクションで「にゅっと」出てくるウィンドウのことです
ここでスイッチしておかないと、入力ができません



最後は以下の部分
  
    driver.find_element_by_tag_name("body").send_keys("abcdefghijklnmopqrstuvwxyz-")
  
これはhtml内のbody要素に対して、aからzまでと-を全て入力するコードになっています。
さて、結果は...?


etyping自動化の結果



おやおや、あまり上手くいっていないようですね
キーボードを叩く、と言う点については文句なしです
キーボードがしっかりと反応し、abcd順に打てているのも確認できます
ただこの手のサイトはあまりにも間違えすぎると逆に0点になってしまうようです


tags

selenium
python
寿司打

popular page

プログラミング言語の学ぶ順番について(初心者から中級者へ)後編

Pythonで入門書が終わった後(中級者)に勧めたい技術3選

urllibとbeautifulSoupでtwitterのツイート数,フォロー数,フォロワー数,いいね数,を取得する

another page

寿司打を自動化する(python, selenium)

Pythonで入門書が終わった後(中級者)に勧めたい技術3選

ツイッターの自動的なフォローをpythonとseleniumで!(RPA)

CONTACT ME RIGHT NOW!

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.

5th Avenue, 987
38399, New York,
USA.

Tel. 9888-4394
Mail. hello@example.com
Skype. ExampleSkype

Your message has been sent. Thank you!

© Copyrights Studio. All Rights Reserved

Created with Studio template by TemplateMag
/* フッター/コピーライトのスタイル指定 */ footer { padding: 40px 16px; } footer .copyright small { color: #868686; font-size: 1.4rem; font-family: "Ubuntu Condensed", sans-serif; letter-spacing: .05em; }