UserAgent : してログ

ロボットのアクセスを判定するためのキーワードリストを、新しく作り直しました。このサイトのアクセスログから拾っていますので偏りがあるかもしれませんが、十分な期間のサンプルから作成したのでそれなりの精度で判定可能かと思います。

部分一致での判定リスト

基本的にサービス名っぽいキーワードを切り取ったリストなので、多少のバージョン違いによるブレも関係なく判定できます。

Googlebot
Yahoo! Slurp
Mediapartners-Google
msnbot
bingbot
MJ12bot
Ezooms
pirst; MSIE 8.0;
Google Web Preview
ia_archiver
Sogou web spider
Googlebot-Mobile
AhrefsBot
YandexBot
Purebot
Baiduspider
UnwindFetchor
TweetmemeBot
MetaURI
PaperLiBot
Showyoubot
JS-Kit
PostRank
Crowsnest
PycURL
bitlybot
Hatena
facebookexternalhit
twibble.io
Twitterbot
ceron.jp
spider
SocialRankIOBot
CCBot
Nuzzel
NINJA bot
IAS crawler
BLEXBot
crawler
SemrushBot
DotBot
AMZNKAssocBot
Mappy
linkdexbot
Scrapy
DeuSu
admantx
ltx71
Cliqzbot
AlphaBot
BUbiNG
Applebot
Y!J-BRW
SafeDNSBot
Slackbot

正規表現での判定リスト

短すぎるキーワードや開発環境しか入ってないログが結構ありました。部分一致にすると誤判定してしまうかも知れないので、正規表現で対応しています。

^bot$
^Java\/[0-9_.]+$
^Wget\/
2番目の Traident のやつ
2番目の Traident のやつ

なんかログ処理がエラー出していたんで調べてみると、User Agent におかしな文字コードが含まれているものがありました。元の文字コードが何なのか知らないけど、スペースが入る場所の文字コードが &#20 じゃないのが入っているようです。コンソールでダンプしたら文字化けして見えるのですが、実際何が入っているかまでは確認してません。

なお、IP は米国マイクロソフト社ばかり、本当にマイクロソフトか怪しいもんです。これ、なんか気持ち悪いなあ。でも、2/2 のログだけなんだよなあ。あ~気持ち悪い。