docに代入された時点でリクエスト1回しているという認識
Nokogiriはパーサで、リクエストしているのはopen(OpenURI)です。
OpenURIを使うときに、openメソッドを再定義しているはずです。
スクレイピングはDOS攻撃にあたるそうですが
両者はイコールではありませんが、
過度なスクレイピングが攻撃と見なされる場合はあります。
となると、「過度」の目安は何か、という話になってきます。
これは法律ではなくて、自主的で慣習的な規約に過ぎませんが、
「1秒ルール」というのが一番有名だと思います。
クローラーが同じサイトに連続してアクセスするのは、
1度につき1秒以上の間隔を空ける、というルールです。
分かりやすいし、私も推奨したいルールです。
さらに、「robots.txt」を読んで、クローラー禁止サイトでは、
クローリングを避けるルールも同時に推奨したいです。
絶対訴えられないという保証はありませんが、そのようにすればより安全でしょう。
1リクエストごとにsleepで停める処理を行う必要
私の場合は、1リクエストごとに、1秒以上確実にスリープを入れています。
もしかすると、「それだとムダな待機時間が生じるのではないか」、
という疑問がおありになるかもしれませんね。
しかし、時間を計測するなどして、その余分を厳密に詰めていくより、
たとえば複数サイトに分散アクセスした方が、はるかに効率的になると思うので、
私はそこまで詰め込んでいません。むしろ2~3秒待つとか、より余裕を持たせています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/23 00:32