今日はこのへんで

プログラミングやプロダクト開発について。もしくはただの雑記。

Web検索がやりづらい世界になってしまった

Google Spreadsheetの便利機能に IMPORTXML ってあるじゃないですか。あれを使ってGoogleの検索結果を取得して、1件目のリンクを取得したかったんですよ。ざっと5000件くらい。

ちょちょいってできるかと思ったけど、意外とできなかった。

なんでもプログラムからの検索結果の取得は Google Custom Search を使わないといけないそうで。なのでGoogle AppScript を書いたんですよ。

function imFeelingLucky(query) {
  var apiUrl = "https://www.googleapis.com/customsearch/v1?"
  var queryParams = "&client=google-csbe&cr=countryJP&gl=jp&hl=ja&oe=utf8&num=1&output=xml_no_dtd&safe=off";
  var apiKey = "YOURGOOGLECUSTOMSEARCHAPIKEY";
  var cx = "YOURGOOGLECUSTOMSEARCHAPICX";
  var requestUrl = apiUrl+queryParams+"&key="+apiKey+"&cx="+cx+"&q="+query;
  var response = UrlFetchApp.fetch(requestUrl);
  var json = response.getContentText();
  var data = JSON.parse(json);
  return data.items[0].link;
}

あ、Custom Searchはもともとサイト内検索のための機能の設定だったりするので、検索するサイトの設定をウェブ全体に変更しないとだめでした。

f:id:Kechol:20170220195622p:plain

これでいけるかな、と思ったらまたたくさんエラーでて。API制限ですよ。Custom Search API は100 リクエスト/日 で制限食らっちゃうんですね。

100リクエストって何もできないじゃん!みたいな。Googleさん計算機リソース余りまくってるでしょ!って。調べたらBingも無料枠は1000リクエスト/月しかできなくて。いろいろドキュメント見てみると Google Web Search API が Deprecated になったのは 2010年11月、終了は2014年9月だそうで。これまでよく気が付かなかったな。


GoogleがAPIの制限をこれだけきつくするのは、やっぱり検索エンジンの返す情報が正確になって、より価値を生み出すようになってきたからでしょうか。

今はAIがブームだけれど、Google検索結果に限らず、一見シンプルな結果を返すインターフェースも、裏側では膨大なデータの計算によってなされるというようなことが多くなっていくでしょう。結果からは想像しづらい計算コストが生まれ、その計算結果が、まるで人の手が込んだような価値を生み出すようになるんですから、ITサービスの料金が将来的にどんどん上がっていくのは自然な流れなのかもしれません。

という愚痴でした。