rubyで作ったクローラがアクセス制限を食らってしまった。
アクセス過多にはならないよう、30〜120秒に1回にしていたのだが、駄目だったようだ…。
そこで、匿名プロキシを使おうかと思ったが、使えるプロキシが少ない&いつ使えなくなるか分からないという事で考えた末、そう言えばtorと言うのがある事を思い出した。
torをインストール&設定
yum install tor -y
以下の項目をコメント解除&設定する
SOCKSPort 9050
SOCKSPolicy accept 127.0.0.1/8
SOCKSPolicy reject *
RunAsDaemon 1
ControlPort 9051
privoxyをインストール&設定する
torはsocksプロキシで、それをhttpプロキシとして使えるようにするために、privoxyとやらをインストール
yum install privoxy -y
以下の行をコメント解除する
forward-socks5t / 127.0.0.1:9050 .
torとprivoxyを再起動
systemctl restart tor
systemctl restart privoxy
IPアドレスが変わるか確認
まずは自分のグローバルIPが出るかチェック
curl -sL http://ipinfo.io
次にprivoxy(tor)経由でIPアドレスが変わるかチェック
curl -sL -x http://localhost:8118 http://ipinfo.io
rubyではtor-privoxyを使う
mechanizeではなくtor-privoxyを使う事で、rubyからtorを通して通信出来る(手抜き)
まとめ
rubyを使うと、僅か30行程度でクローラが作成出来る。
更に今回のtor+privoxyを使うと、アクセス元IPアドレスを変更してクロールも出来る。
世の中なんて便利になったのだろうと実感出来る。
コメント