是非に及ばず

プログラミングに関する話題などを書いていきます(主にRailsやAndroidアプリ開発について)

Hyper EstraierのWebクローラのUserAgentを変更する方法

基本的にHyperEstraierのWebクローラ(estwaverコマンド)のUser-Agentは"HyperEstraier/{バージョン}"で固定になっている。でも、モバイルサイトを検索対象にしたい時にこれでは困る。理由は、User-Agentによって表示するコンテンツを切り替えている動的ページに対応できないためだ。
いろいろ調べたところ、設定ファイルにはUser-Agentの設定項目がないため、ソースを修正して再コンパイル&インストールするしかないようだ。具体的には、estnode.h内を以下のように修正して、コンパイルしてインストールする事でUserAgentを変更したestwaverが作成できる。

---------- estnode.h ---------- 
#define ESTAGENTNAME   "HyperEstraier"   /* name of the user agent */#define ESTAGENTNAME   "DoCoMo/2.0 P906i(c100;TB;W24H15) HyperEstraierCrawler"   /* name of the user agent */


※この例の場合、実際のUser-Agentは"/{バージョン}"を付加したものになる。
  例:versionが1.4.13の場合
  DoCoMo/2.0 P906i(c100;TB;W24H15) HyperEstraierCrawler/1.4.13

注意点としては、makeしただけではダメで、make installしないとダメ。
インストール先/lib以下に入るライブラリにUser-Agentの値が入っているから当たり前という話もある。
HyperEstraierのWebクローラでUser-Agentを複数使いたいのであれば、その分だけestnode.hを修正して
異なるディレクトリへインストールする必要があるという事。
例えば、こんな感じ。

/usr/local/hyperestraier-pc
/usr/local/hyperestraier-docomo
/usr/local/hyperestraier-au
/usr/local/hyperestraier-softbank