3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

楽天ユーザー 楽天のくじを全て自動で引く

Last updated at Posted at 2021-03-22

#楽天くじとは
楽天には毎日引けるくじがあります。
くじに当選すると、1〜1000ポイントがもらえるものもあります。
(大体が1か10ポイント)

楽天の公式にはくじ一覧が載っているサイトがあります。

しかし、楽天のくじはここに載ってるだけではなく、もっとたくさんあります。
(全て自力で探すのはキツい笑)
それが一覧で掲載されているサイトが以下のサイトになります。

今回はこれらたくさんのくじを、seleniumを使うことで全て自動で引きたいと思います。

#楽天くじのURLリスト


url_list = [{'url':'https://kuji.rakuten.co.jp/9d91da42ab','name':'infoseeek'},
            {'url':'https://kuji.rakuten.co.jp/889373540e','name':'infoseeekNews'},
            {'url':'https://kuji.rakuten.co.jp/842378b442','name':'LINE'},
            {'url':'https://kuji.rakuten.co.jp/46211bf9dd','name':'TV'},
            {'url':'https://kuji.rakuten.co.jp/bc23814a75','name':'楽天toto'},
            {'url':'https://kuji.rakuten.co.jp/8c538152dd','name':'楽天宝くじ'},
            {'url':'https://kuji.rakuten.co.jp/4ad36145c2','name':'楽天くじ広場'},
            {'url':'https://kuji.rakuten.co.jp/d2b37c7d6a','name':'楽天e-NAVI'},
            {'url':'https://kuji.rakuten.co.jp/fae37d0d91','name':'楽天e-NAVI さかな'},
            {'url':'https://kuji.rakuten.co.jp/8212abcffe','name':'楽天e-NAVI じゃんけん'},
            {'url':'https://kuji.rakuten.co.jp/42136c5d7d','name':'楽天ブックスfacebook'},
            {'url':'https://kuji.rakuten.co.jp/6e2381eb02','name':'pointmall部活'},
            {'url':'https://kuji.rakuten.co.jp/26d37b04b2','name':'楽天レシピ'},
            {'url':'https://kuji.rakuten.co.jp/4e9371dd92','name':'楽天car'},
            {'url':'https://kuji.rakuten.co.jp/10a37ad0e0','name':'楽天×ぐるなび'},
            {'url':'https://kuji.rakuten.co.jp/9ea32a8dfa','name':'楽天カレンダー1'},
            {'url':'https://kuji.rakuten.co.jp/34e2cb79fa','name':'楽天カレンダー2'},
            {'url':'https://kuji.rakuten.co.jp/256356cd1a','name':'楽天カードラッキーくじ'},
            {'url':'https://kuji.rakuten.co.jp/4351057845','name':'楽天ツールバーラッキーくじ'},
            {'url':'https://kuji.rakuten.co.jp/9a0381a85d','name':'楽天デリバリー'},
            {'url':'https://kuji.rakuten.co.jp/7a1321943c','name':'スマホアプリ限定ラッキーくじ'},
            {'url':'https://kuji.rakuten.co.jp/a29321bc36','name':'スマホスマホ限定ラッキーくじ'},
            {'url':'https://kuji.rakuten.co.jp/fc437af2c7','name':'スマホリワード特集'},
            {'url':'https://kuji.rakuten.co.jp/95737c358e','name':'楽天edyくじ'},
            {'url':'https://kuji.rakuten.co.jp/1473379bb1','name':'スマホ楽天pointclub'},
            {'url':'https://kuji.rakuten.co.jp/a24364f880','name':'スマホ楽天pointclub'},
            {'url':'https://kuji.rakuten.co.jp/4592a41e4c','name':'スマホ楽天カードスマホ'},
            {'url':'https://kuji.rakuten.co.jp/e7a37ae390','name':'スマホ楽天リワード'},
            {'url':'https://kuji.rakuten.co.jp/2d1381326a','name':'マネ活ラッキーくじ'},
            {'url':'https://kuji.rakuten.co.jp/27436a510a','name':'スマホ毎日ラッキーくじ'},
            #その他、特殊なくじ
            {'url':'https://point.rakuten.co.jp/doc/lottery/lucky/','name':'スマホ楽天pointclub'},
            {'url':'https://pointmall.rakuten.co.jp/','name':'スマホDAILY CHANCEくじ'},]

3月初旬時点での、楽天くじのURLリストになります。

#実行コード


for page in tqdm(url_list):
        try:
            if page['url'] == 'https://pointmall.rakuten.co.jp/':
                driver.get(page['url'])
                time.sleep(1)
                driver.find_element_by_xpath('//*[@id="side"]/div[1]/ul/li/div[1]/a/img').click()
                driver.find_element_by_xpath('//*[@id="side"]/div[1]/ul/li/div[2]/div/div[1]/div[6]').click()
                time.sleep(14)

            elif page['url'] == 'https://point.rakuten.co.jp/doc/lottery/lucky/':
                driver.get(page['url'])
                time.sleep(2)
                driver.find_element_by_xpath('//*[@id="cp_btn_start"]/a/img').click()
                time.sleep(14)

            else:
                driver.get(page['url'])
                time.sleep(1)
                driver.find_element_by_xpath('//*[@id="entry"]').click()
                time.sleep(14)

        except NoSuchElementException:
            print('###エラー 次のくじに進みます。' + page['name'] + '###')
            time.sleep(1)

くじリストの最後の
「楽天PointClubアプリラッキーくじ」
「楽天ポイントモール DAILY CHANCEくじ」
に関してはくじの引き方が他のくじと異なるので、if文で分岐させています。

#改善点
###実際に使ってみて思ったこと
・URLが頻繁に変わるくじ
・キャンペーンのたびに新たに追加されるくじ
これらの問題を解決しなければならないと思いました。
ぶっちゃけURLリストを作っている時にアホくさいなと感じていました。

#次回
くじサイトから直接リンクをクリックするプログラムにすることで解決する。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?