過去に作ったソフトウェアのメモ-第一弾-したらば巡回くん(4)
前回に引き続き、改善案とその実装についてです。
今回書くこと
- 連続アクセスエラーを識別するために考えたこと
- プロキシの利用
- 完成したら
連続アクセスエラーを識別するために考えたこと
前回までの調査で、「HTTPのヘッダーを見れば、連続アクセスエラーであるか判定できる」としていました。再調査して、その根拠について表1にまとめました。
※URL…https://jbbs.shitaraba.net/[カテゴリ]/[番地]/
※API1…https://jbbs.shitaraba.net/bbs/api/setting.cgi/[カテゴリ]/[番地]/
※API2…https://jbbs.shitaraba.net/[カテゴリ]/[番地]/subject.txt
説明は繰り返しになるので省略です。
表2はスレッドにアクセスした場合のやつです。
※API3…https://jbbs.shitaraba.net/bbs/rawmode.cgi/[カテゴリ]/[番地]/[スレッド番号]/
連続アクセスエラーが出た場合の対処法は記述できました。これにより動作が格段に安定します。
プロキシの利用
どうやら短時間にたくさんアクセスすると連続アクセスエラーがでるようです。数千単位の板を巡回するためにはどうしても多くのアクセスが必要になります。したがって、連続アクセスエラーを回避するためには、多くの時間がかかります。となると、IPを複数運用する方法が浮かびます。というのも、連続アクセスエラーによる規制はIP単位でかけられているとしか考えられません。なので、IPをたくさん用意して、アクセスを分散させるという方法は有効そうです。しかし、IPを直接的に複数用意するのはコストが掛かります。そこでフリーで使えるプロキシの利用が考えられます。
●方法1
カテゴリーごとにHTTPクライアントのインスタンスを生成。これらのインスタンスにそれぞれ、プロキシを設定する。カテゴリーで並行して巡回する。
●方法2
APIにアクセスするたびに新しいプロキシを設定する。巡回する間隔を減らす。IPを捨て駒にするということです。こちらのほうが実装が楽です。。。
…まあ実装上の話なのでこれだけ見ても意味不明かもしれません。
完成したら
せっかくなのでみんなと共有したいところです。したらばの仕様をいちいち調べるのは面倒ですし。実行形式ファイルとソースコード、両方を公開したいです。あと、巡回した結果を保存して、それについてちょっと調べてみたいです。