Rubyスクレイピング User-Agent 設定が必須 : 連載-1

こんにちは

開発チーム プログラマーのアレックスです。
今年も、いよいよ最後の日になりましたね。

私は本日、鏡餅を買ってきました:)

さて、今回の記事は「Rubyでのスクレイピング」についてです。
今後、何回かにわたってスクレイピング技術についての解説を行っていきたいと思います。

目次

1. 記事作成の経緯
2. なぜ必要なのか
3. 詳しい解説

1. 記事作成の経緯

ユーザーエージェントの設定についての文献は、十分ぐらいにありますね。

では、なぜ今更こんな記事を書くのか?です。

スクレイピング系の解説記事を参照させていただいていても、
ユーザーエージェント設定方法はもちろんたくさんの記事がございます。
しかし、その必要性について、書かれている記事はあまり見かけません。

ユーザーエージェント設定せず(ここでは設定せずはMechanize等デフォルトのままの状態も含みます)
スクレイピングに行くことは、礼儀的にも機能的にもよろしくないと私は考えています。
※あくまで結構個人的な意見ですので、これが絶対という思いはありません。ご了承ください。

2. なぜ必要なのか

私は大前提として、(サイトオーナーへ無断の)スクレイピングという行為自体、
受けるサイト側からすれば、歓迎されるものでは無いと考えています。

ロボットにより可能となる機会的、連続的なリクエストはサイトサーバーにそれなりに負荷をかけるからです。
(細かいことを言い出すと切りがありませんので、かなりざっくり書いています。)

だから負荷をかけないような、動作にしたり作成に注意が必要ですよ。
といろいろな文献で言われるわけですね。

ロボット対策をもちろん何も考えていないサイトは有りますが、
きちんとしたサイト(企業サイトや有名サイトなど)は基本的に考えられていますし、
そういったところからデータを取得することのほうが多いと思います。

そういうところではユーザーエージェントが、
特定のロボット(サイトにとって有益なGoogle検索エンジン等)や
人が操作をしていることを示す、ブラウザでなければ門前払いな設定が当たり前だったりします。

というポイントから私の考えるスクレイピングの極意!ひとつ目は

如何にサイト側に人間のアクセスと思わせるか

です。

本当に重要だと思っていますので、Rubyにかぎらずスクレイピングをする人は、
絶対に忘れないでおきましょう。

3. 詳しい解説

詳しい解説は、Qiitaに投稿いたしましたので、ぜひご覧ください 🙂
http://qiita.com/arribux/items/4c2b3382ca71f29a6b8a

以上、アレックスでした! Bye 🙂

投稿者:

Alex.js

プログラマーのアレックスです。 日本人の母と、アメリカ人の父の間に生まれました。 出身は、ITの聖地シリコンバレーのあるサンタクララです。 Hi. I'm Alex.J.Smith. It's Japanease American born in Santa Clara CA.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です