1
1

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.

AtCoderにPythonでログイン、自動提出する方法

Last updated at Posted at 2020-05-06

はじめに

みなさんは何を使ってAtCoderに提出していますか?AtCoderのサイト上で、という人が大多数だと思いますがatcoder-cliやonline-judge-toolsを使ってる人もいらっしゃると思います。わたしはここのサイト(とその関連記事)を参考に自分で自動提出できるようにしたいなぁ~と思っていましたが、うまくいかなかったので、この記事を書きました。

できなかったこと

まず、先ほどのサイトの通り、実装してみても、うまく提出できません。なぜでしょうか。ぼくはこれの原因究明に3日ぐらいかけました。アホですね!!しかし、この記事をご覧になさっている方なら私の二の舞を演じることはないと思います!!

※この記事を読む前に先にはじめに紹介したサイトを御一読なさることをお勧めします。この記事はそのサイトの内容を理解したことを前提にして話を進めさせていただきます。また私の実行環境はWindows10,Python3.8.1,Requests,BeautifulSoup4インストール済みです。Pythonをインストール済みの方でRequests,BeautifulSoup4をインストール済みでない方はインストールをお勧めいたします。

原因究明

まずは私は、ログインできていないことを疑いました。そこでWebブラウザでログインできない環境を再現しようとしました。

たとえば、AtCoderログインでわざとアカウント名やパスワードを間違えてみてください。そうすると、結局はログインできませんでしたという通知が出て同じサイトに居続けますね?なので、まずはリダイレクト先を疑いました。

また、いろいろといじっていたら面白いことに気づいてしまったので私のもう一つの記事を紹介しておきます。

先ほどのサイトのpost処理の後に

print(result.url)

こう書いて.urlを用いてリダイレクト先を探してみてください。そうすると私は

https://atcoder.jp:443/home

こう表示されました。なのでログインするurlをこれに変えたらログインもできたし、正常に提出もできました。皆さんも試してください。心配性の方はlogin_urlを変えずにと私の記事のログインできているか確かめている方法を利用してtry~except文で書いたらいいと思います。

おわり

読んでいただきありがとうございました。かなりわかりにくい記事になってしまいましたが参考になれば幸いです。なにかご指摘ありましたら、コメントしていただければ嬉しいです。ありがとうございました。

1
1
2

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?