表題の通り。
高橋(13:38)
Mashableのページがはてブできないのはなぜ?
なぜかモバイル用ページになっちゃう...
ライブドアクリップではそういうことないかね?
Kiyoshi Yoshida(13:39)
おお
ホントだ
高橋(13:40)
だしょ
Kiyoshi Yoshida(13:40)
はてなが送ってるUAがおかしいみたいな事かなー
高橋(13:40)
なんかそんな感じだよね
ページ取得いってモバイルて言われて帰ってきてるよね
はてブするとはてな側からエントリ情報、本文(の一部)、スクリーンショットを取る為のスクリプトがいらっしゃる。
各々の UA は
- Hatena Bookmark/0.1
- Hatena2::RemoteDocument/0.02
- HatenaScreenshot/1.0 (checker)
こんなんかな。
スクリーンショットは今回の件とは関係薄そうなので上2件をテスト。
まず Hatena Bookmark/0.1 をためす。
irb(main):002:0> Net::HTTP.start('mashable.com'){|h| h.get('/', "User-Agent" => "Hatena Bookmark/0.1")}
=> #<Net::HTTPOK 200 OK readbody=true>
次に Hatena2::RemoteDocument/0.02 で。
irb(main):003:0> Net::HTTP.start('mashable.com'){|h| h.get('/', "User-Agent" => "Hatena2::RemoteDocument/0.02")}
=> #<Net::HTTPFound 302 Found readbody=true>
302 が返って来た!どうもこっちが怪しい。
「Remo」は通し。
irb(main):005:0> Net::HTTP.start('mashable.com'){|h| h.get('/', "User-Agent" => "Hatena2::Remo")}
=> #<Net::HTTPOK 200 OK readbody=true>
「Remot」は通らず。
irb(main):006:0> Net::HTTP.start('mashable.com'){|h| h.get('/', "User-Agent" => "Hatena2::Remot")}
=> #<Net::HTTPFound 302 Found readbody=true>
どうやら「mot」が通らない。
irb(main):010:0> Net::HTTP.start('mashable.com'){|h| h.get('/', "User-Agent" => "mot")}
=> #<Net::HTTPFound 302 Found readbody=true>
ユーザーエージェントが「mot」と言えば、それはモトローラ系端末。MOT-V980 とか。
mashable の UA に「mot」が入ってたらモバイル扱いするザックリ具合が主な原因。
「『mot』で判定するケースがあるから『remote』とか使うな」ってのは自分でクローラ書く時の参考になった。
ちなみに delicious には問題無くブックマーク出来ました。