blog上野谷根千界隈でまったりと暮らしているWeb系フリーランスの雑記ブログです。Webやフリーランス、グルメなどについてもしゃもしゃ書いてます。Update:2019/10/31こんにちは、katori@xxbicotです。Web制作の幅を広げたい&Webサービスとかクローラーに興味があったため、4月頭からオンラインの学習サービスを利用して勉強していました。今回は主に以下のような作業の効率化を目的として、検索エンジンを横断検索してくれるプログラムをローカル環境で作ろうとしました。特定のキーワードの競合記事のチェック特定のキーワードのランキングのチェック自分の記事がランキング上位に入っているかStatCounterさんのこちらのデータをみると、日本での検索エンジンのシェア率は2018/3時点でGoogle60.71%、Yahoo24.68%、Bing4.13%の順とのこと。Yahooは実質Googleと同じものなので省略、Bingはシェア率が結構低いですが少なくとも利用者がいるということで、今回の対象検索エンジンはGoogleとBingに決めました。ついでに最新情報もわかるよう、オプションとして最終更新日の指定を加えました。完成品ということで完成品がこちら。入力してsubmitボタンをクリックすると...↓ばーんスクレイピングした結果が表示!Railsそれではメインとなるルーティング、コントローラ、ビューの中身です。%></div></section></div>Google、Bingそれぞれの検索結果ページで使用されているURLパラメータを利用し、入力された条件にしたがってパラメータを変更・付与することで検索結果を取得してきています。HTMLコードの抽出や加工が簡単に柔軟にできる「nokogiri」というgemもありますが、今回は使用していません。open-uriだけを読み込んでいます。ちなみにビューの装飾はbootstrapを使ってみました。使ったけど便利でびっくり。整えられる...!ヽ(*゚ω゚)ノ完成したはいいものの...無事完成し、何回か使用しているととある問題が発生しました。Unavableエラーが発生する(°Д°;どうやらGoogleの検索画面へのアクセスは利用規約違反で、そういったアクセスがあった場合このエラーを返してくるとのこと。ちなみに、Amazonも利用規約違反になるようです。提供するインターフェースおよび手順以外の方法による本サービスへのアクセスを試みてはなりません。ために行うアカウント情報のダウンロードとコピーやその他の利用、データマイニング、ロボットなどのデータ収集・抽出ツールの使用は、一切含まれません。∠):その繋がりで調べてみたところ、スクレイピングはその他にも色々と注意する必要がありそうです。こちらの弁護士さんの記事に詳しく書かれていました。可能性(刑事上の責任)参照元)【スクレイピングと法律】スクレイピングって法律的に何がOKで何がOUTなのかを弁護士が解説。スクレイピングはサービス提供側が公式にサポートしたものではなく、色々と問題が発生しかねないため、APIが用意されてるならそれを使った方が良さそうですね。どちらにせよ利用規約は重々守って、サービス提供側に負荷をかけないよう心がけて使うべきだと思いました。まとめ今回この横断検索プログラムを作ったのは、「アプリとか記事の反応を拾って次に活かせるようにしたいなぁ」という理由からでした。今後は検索エンジンだけでなくSNSも検索対象にしたり、メール通知機能をつけたり、ログイン機能をつけたりということも考え中。WORDPRESS(13)Profilekatori在宅フリーランスのWebデベロッパー(フロントエンドエンジニア、コーダー)です。東京の上野谷根千界隈でまったり仕事してます。