torとprivoxyでアクセス元IPを変えてクロールする

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を通して通信出来る(手抜き)

tor-privoxy

まとめ

rubyを使うと、僅か30行程度でクローラが作成出来る。
更に今回のtor+privoxyを使うと、アクセス元IPアドレスを変更してクロールも出来る。
世の中なんて便利になったのだろうと実感出来る。

コメント

タイトルとURLをコピーしました