SE吾郎の備忘録

24歳SEの勉強用の備忘録です.皆様の役にも立てれば幸いです.

【備忘録】instagram自動化プログラムが使えなくなった!?

こちらの記事で作成したインスタの自動実行プログラムなのですが,コードは変更していないのにエラーが発生し,実行出来なくなってしまいました.(リンク先記事のソースコードは修正済みです)

segoro.hatenablog.com

ある日突然以下のエラーが出るようになってしまいました.
target = driver.find_elements_by_class_name('_9AhH0')[10] IndexError: list index out of range
エラーの内容としてはクラスの名前「_9AhH0」が見つかりません というエラーです.
しかし,今まではこのコードで動いていたはずですし,特に何も触っていないのに...
そこでひとつひとつ動作を確認してみましたが,やはり
target = driver.find_elements_by_class_name('_9AhH0')[10]
の部分でエラーが出てしまいます.読み込み速度による問題でもなさそうでした.(何箇所か以前より読み込み速度が遅くなりエラーになるところがありました.)
キー自体が存在しないのか!?と思いブラウザから確認してみるとビンゴでした.
instagram側のアップデートの際にキーが変わっていたみたいです.この他にも2~3箇所キーが変わっている場所がありました.
ひとつずつキーを探して修正しましたが,毎回アップデートの度に変わるのであれば面倒ですね...
何か良い方法はないでしょうか...
修正部分のコードを載せておきます.

before


    driver.find_element_by_class_name('HoLwm').click()
    target = driver.find_elements_by_class_name('_9AhH0')[10]
    driver.find_elements_by_class_name('_9AhH0')[9].click()
    driver.find_element_by_class_name('fr66n').click()
    driver.find_element_by_class_name('coreSpriteRightPaginationArrow').click()

after


    driver.find_element_by_class_name('_a9_1').click()
    target = driver.find_elements_by_class_name('_aa8k')[10]
    driver.find_elements_by_class_name('_aa8k')[9].click()
    driver.find_element_by_class_name('_aamw').click()
    driver.find_element_by_class_name('_aaqg').click()