2022年10月ワイモバイルでのお支払いではPayPayの支払い回数にカウントされなくなりました。
ワイモバのページの仕様が変わりましたので前記事で書いたプログラムでは動かなくなりました
今回はSeleniumをもっと簡単に使えるようにしたheliumというものをpip installして使います
pip install helium
Pythonがある程度わかり、実行環境もある方向けの記事になってます
あとChromeDriverはお使いのChromeのバージョンと一致するか、数字の近いものをダウンロードしておきます
2022年3月最新版ソースコード
ではさっそく
import time
from helium import *
url = 'https://www.ymobile.jp/'
def login(phone_num, password):
ymobile_button = find_all(S('.header-submenu-myymobile'))[0]
click(ymobile_button)
click('ログイン')
driver = get_driver()
time.sleep(2)
driver.find_element_by_name('telnum').send_keys(phone_num)
driver.find_element_by_name('password').send_keys(password)
click('ログインする')
def pay_repeat_num(repeat_num, onetime_pay):
for num in range(int(repeat_num)):
time.sleep(2)
click('料金案内')
time.sleep(0.5)
click('PayPay管理')
click('申し込む')
write(onetime_pay, into='円')
click('次へ')
click('注意事項に同意して申し込む')
print(f'{num + 1}回目の支払い完了')
click('My Y!mobileトップへ')
time.sleep(5)
def main():
phone_num = input('Yモバイルの電話番号を入力してください')
password = input('パスワードを入力してください')
start_chrome(url)
login(phone_num, password)
repeat_num = input('支払いの回数を入力してください')
onetime_pay = input('1度に支払う金額を入力してください')
pay_repeat_num(repeat_num, onetime_pay)
kill_browser()
if __name__ == '__main__':
main()
point
onetime_pay = input('1度に支払う金額を入力してください')
入力が面倒なら決め打ちでもいいです
onetime_pay = 300
こんなかんじに変えてください
不安定
エラー吐いて止まっちゃう時は、だいたいページが読み込んでないのに要素を探しに行こうとしてます
よって、よく停止するプロセスのSleepを長くしてください
time.sleep(2)
この引数は秒数なので1秒足してみたりすればエラー吐く可能性が減ります
動いた
お茶でもコーヒーでも入れて漫画を読んで待ちましょう
あとで30回が達成されているかどうかしっかり確認してください
コメント