たつをの ChangeLog : 2010-03-18

Asamasearch (http://find.x0.to/as/) で、(1)動画検索でサムネイルが表示されない、(2)ウェブ検索で検索結果が出ない、というトラブルがあったので修正しました。まあ、もう放置でもいいっちゃいいんですけど、それもさみしいので。

動画検索でサムネイルが表示されない


動画検索で Thumbnail の Height と Width がどちらも 0 になってた。しばらくしたら直ってた。
とはいえ、今後のこともあるので、YjaoSearch.pm(Asamasearch から呼ぶモジュール)を修正。0 のときは 30 にしとく。
$one{height} = $2;
$one{width} = $3;

$one{height} = $2 || 30;
$one{width} = $3 || 30;
あと、テンプレートで「width:30」が「width;30」になってた。
コロンとセミコロンのありがちな間違い。

ウェブ検索で検索結果が出ない


正規表現 ad hoc にXMLをパーズしていたゆえの問題だった。
パーザ使えよ、って話もあるのですが、修正が大掛かりになるので、その場しのぎな対処。
if ($c =~ m!<Title>(.*?)</Title><Summary>(.*?)</Summary>...

if ($c =~ m!<Title>(.*?)</Title>\s*<Summary>(.*?)</Summary>...

あと、URLが古いままだったので変更。
- 旧:api.search.yahoo.co.jp
- 新:search.yahooapis.jp
この記事に言及しているこのブログ内の記事

Bing Developer Center (http://www.bing.com/developers/)の右カラムの「Create an AppID」経由で、Windows Live ID を登録してから AppID を作成する。

で、「渋谷」のウェブ検索結果の100件目から5件を取得する例:
http://api.search.live.net/xml.aspx?Appid=<AppID>&\
query=%E6%B8%8B%E8%B0%B7&sources=web&web.count=5&web.offset=100
なお、パラメータ web.count の範囲は 1-50、web.offset の範囲は 0-1000。アクセスは1秒間に7回未満という制限あり。

参考

- Introducing Bing API
http://msdn.microsoft.com/en-us/library/dd440742.aspx
- More sample requests
http://msdn.microsoft.com/en-us/library/dd440750.aspx
http://api.search.live.net/xml.aspx?Appid=<AppID>&query=sushi&sources=web
http://api.search.live.net/xml.aspx?Appid=<AppID>&query=sushi&sources=image
http://api.search.live.net/xml.aspx?Appid=<AppID>&query=sushi&sources=news
...
- WebRequest Class (Bing, Version 2.0)
http://msdn.microsoft.com/en-us/library/dd250886.aspx
WebRequest.Count Proterty
WebRequest.Offset Proterty
- Appendix: Terms of Use Overview
http://msdn.microsoft.com/en-us/library/dd440746.aspx
Restrict your usage to less than 7 queries per second (QPS) per IP address.

たつをの ChangeLog
Powered by chalow