人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

はてなスターのスターコメントは検索エンジンの検索対象になりますか? クロールされるのでしょうか。
対象になる場合は実例を交えて解説を、対象にならない場合は技術的に解説をお願いします。

●質問者: fmht7
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●30ポイント

スターにコメントがついたページのソースを見てみると

<p><a href="http://labs.translated.net/language-identifier/" target="_blank">http://labs.translated.net/language-identifier/</a><br /><br />前は ゼロックスのを使ってたけど、最近 使えなくなったみたい・・・。</p><div class="star-container"><span class="star"><a href="http://q.hatena.ne.jp/1325988375#a1126474" style="display:none;" class="star-url"></a><span class="hatena-star"></span></span></div></div><div class="section clearfix"><div class="answer-comments" ><div class="answer-comment clearfix questioner-comment" id="ac11518" >

となっており コメントは ソースには 含まれていませんでした。

実際に検索してみても

http://www.google.co.jp/search?num=100&hl=ja&newwindow=1&client=firefox-a&hs=ppc&rls=org.mozilla%3Aja%3Aofficial&q=language-identifier%2F+%E5%89%8D%E3%81%AF+%E3%82%BC%E3%83%AD%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AE%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%9F%E3%81%91%E3%81%A9%E3%80%81%E6%9C%80%E8%BF%91+%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E3%81%BF%E3%81%9F%E3%81%84%E3%83%BB%E3%83%BB%E3%83%BB%E3%80%82&oq=language-identifier%2F+%E5%89%8D%E3%81%AF+%E3%82%BC%E3%83%AD%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AE%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%9F%E3%81%91%E3%81%A9%E3%80%81%E6%9C%80%E8%BF%91+%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E3%81%BF%E3%81%9F%E3%81%84%E3%83%BB%E3%83%BB%E3%83%BB%E3%80%82&aq=f&aqi=&aql=&gs_sm=s&gs_upl=17380l17991l0l18775l2l2l0l1l0l0l179l179l0.1l1l0

前は ゼロックスのを使ってたけど、最近 使えなくなったみたい・・・。 id:mkonomi. さっそくの回答ありがとうございます。 language identifier ←まさにピッタリの名称ですね! 102ヶ国語を判定できるようです。 Automatic language identifier ...

といった感じで
http://q.hatena.ne.jp/1325988375
のページを見てみると わかるように 検索結果にも出てきません。


よって検索対象とならないです。

ま、スターのコメントを実際にどのようにして処理しているのかは よくわかってないので 中途半端かもしれませんが、検索エンジンからすると 検索対象に入ってないので 検索は できないことは 自明だと言えます。


fmht7さんのコメント
ありがとうございます。 スターコメントはJavascriptで動的に生成されているようですね。 Javascriptで生成されるページは完全にはクロールされないことがあるので、テキスト併せて配置されているようです。 http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=35769

2 ● a-kuma3
●60ポイント ベストアンサー

ウィルスのスキャン中など、PC が重いときなどにページの表示を見ていると分かりますが、
スターはページがあらかた表示された後に現れます。
ページのレイアウト通りに HTML で埋め込まれているのではなく、javascript で、ページの読み込みが終わった後にスターの情報を取りに行っているようです。
今どきのクローラーは、javascript の動作まで追いかけるようですが、多分、簡単なコードしか追えないと思います。


はてなのソースを追ってみました。
それぞれのページには、以下の外部スクリプトの読み込みがあります。
<script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js?222" charset="utf-8"></script>

この中のスクリプトでは、 Hatena.Star.WindowObserver オブジェクトが、ページの表示完了を待ち合わせて、
最終的に Hatena.Star.EntryLoader オブジェクトの getStarEntries() というメソッドが、
以下の URL へリクエストを出します。
http://s.hatena.ne.jp/entries.json

パラメータが幾つか付きますが、uri というパラメータがスターをつける対象の URI です。
例えば、ハイクのパーマリンクだったり、人力検索の質問や回答のパーマリンクです。

URL を作るロジックを簡略化すると、以下のような感じになります。

Hatena.Star.BaseURL = 'http://s.hatena.ne.jp/';

// スター取得する対象の分だけ、uri パラメータをくっつける
for (var i = 0; i < entries.length; i++) {
 url += 'uri=' + encodeURIComponent(entries[i].uri) + '&';
}

new Ten.JSONP(url, c, 'receiveStarEntries'); // JSONP へリクエストを出す

複雑、というほどではありませんが、変数の参照をしたり、文字列の結合があったりと、
それなりにきちんと javascript のコードを処理しなくちゃいけなくなります。

データを読み込んだ後、receiveStarEntries というメソッドでデータは処理されます。
コメントは、HTML のテキストや属性値に直接かかれるのではなく、Hatena.Star.Comment オブジェクトのプロパティとして保持されます。
保持されたデータは、吹き出しのクリックの際に javascript で、文字として書きだされます。

引用スターの文字列も同様に、Hatera.Star.Star オブジェクトのプロパティとして保持され、
スターの mouseover イベントで javascript によって表示されます。


ハイクの例です。
http://h.hatena.ne.jp/Kumappus/243586774554484755
のエントリを表示するときのスターを取得するための URL が↓になります。
http://s.hatena.ne.jp/entries.json?uri=http%3A%2F%2Fh.hatena.ne.jp%2FKumappus%2F243586774554484755&&callback=Ten.JSONP.callback&Tue%20Jan%2017%202012%2011:24:21%20GMT+0900

応答は、JSON 形式で返ります。

{
"entries":[
 {
 "stars":[
 {"quote":"","name":"princo_matsuri"},
 27,
 {"quote":"","name":"zzteralin"}
 ],
 "can_comment":1,
 "comments":[
 {
 "body":"\u30c6\u30ec\u30d3\u96d1\u8a8c\u306e\u8868\u7d19\u8f09\u3063\u3066\u3066\u8208\u596e\uff01",
 "name":"hutuhiko",
 "id":"9235340089995107830"
 },
 {
 "body":"\u306a\u3093\u304b\u30b4\u30fc\u30ab\u30a4\u30b8\u30e3\u30fc\u3068\u5171\u6f14\u3059\u308b\u3089\u3057\u3044\u306d\u3002",
 "name":"Kumappus",
 "id":"11542097892911398355"
 }
 ],
 "colored_stars":[
 {
 "stars":[
 {"quote":"","name":"a-kuma3"}
 ],
 "color":"green"
 }
 ],
 "uri":"http://h.hatena.ne.jp/Kumappus/243586774554484755"
 }
 ],
"can_comment":1,
"rks":"e17e0fa622559b9dff9d0bd5de6ee01e96e2d143"
}

スターコメントは、"comments" に、コメント、はてなID 、コメントのID が書き込んだ順番で入ってきます。
コメントは、Unicode エスケープシーケンスで表現されています。


人力検索の例です。
http://q.hatena.ne.jp/1326705849
の質問では、スターを取得するための URL は、こんな感じです。
質問と回答の数だけ uri パラメータが並びます。
http://s.hatena.ne.jp/entries.json?uri=http%3A%2F%2Fq.hatena.ne.jp%2F1326705849&uri=http%3A%2F%2Fq.hatena.ne.jp%2F1326705849%23a1127695&uri=http%3A%2F%2Fq.hatena.ne.jp%2F1326705849%23ac12488&uri=http%3A%2F%2Fq.hatena.ne.jp%2F1326705849%23a1127699&uri=http%3A%2F%2Fq.hatena.ne.jp%2F1326705849%23ac12492&uri=http%3A%2F%2Fq.hatena.ne.jp%2F1326705849%23a1127700&uri=http%3A%2F%2Fq.hatena.ne.jp%2F1326705849%23ac12493&uri=http%3A%2F%2Fq.hatena.ne.jp%2F1326705849%23a1127746&&callback=Ten.JSONP.callback&Tue%20Jan%2017%202012%2010:38:27%20GMT+0900

長いので、ひとつの回答についてるスターの情報だけ取り出してみます。
http://q.hatena.ne.jp/1326705849#a1127699

http://s.hatena.ne.jp/entries.json?uri=http%3A%2F%2Fq.hatena.ne.jp%2F1326705849%23a1127699&callback=Ten.JSONP.callback&Tue%20Jan%2017%202012%2010:38:27%20GMT+0900

{
"entries":
 [
 {
 "stars": [
 {"quote":"","name":"taiki-sonic-1110"},
 {"quote":"\u77ed\u6587\u3059\u307f\u307e\u305b\u3093","name":"a-kuma3"},
 {"quote":"\u81ea\u5206\u304b\u3089\u898b\u3066\u3053\u306e\u56de\u7b54\u306f\u9577\u6587\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\r\u003cbr /\u003e\u300c\u77ed\u6587\u3059\u307f\u307e\u305b\u3093\uff08^^;;\u300d","name":"ken3memo"}
 ],
 "can_comment":1,
 "comments":[],
 "uri":"http://q.hatena.ne.jp/1326705849#a1127699"
 }
 ],
"can_comment":1,
"rks":"e17e0fa622559b9dff9d0bd5de6ee01e96e2d143"
}

人力検索では、スターコメントが無いので "comments" は空っぽです。
引用スターの文字列の部分が、"stars" の "quote" に入ってきます。



クローラーが javascript を解釈するみたいな情報が、チラホラあったので
例にあげたハイクのエントリを、幾つかのエンジンで探してみましたが、やっぱり駄目ですね。


https://www.google.com/search?num=100&q=%E3%82%B4%E3%83%BC%E3%82%AB%E3%82%A4%E3%82%B8%E3%83%A3%E3%83%BC%E3%81%A8%E5%85%B1%E6%BC%94%E3%81%99%E3%82%8B+site%3Ah.hatena.ne.jp&oq=%E3%82%B4%E3%83%BC%E3%82%AB%E3%82%A4%E3%82%B8%E3%83%A3%E3%83%BC%E3%81%A8%E5%85%B1%E6%BC%94%E3%81%99%E3%82%8B+site%3Ah.hatena.ne.jp

http://search.yahoo.co.jp/search?p=%E3%82%B4%E3%83%BC%E3%82%AB%E3%82%A4%E3%82%B8%E3%83%A3%E3%83%BC%E3%81%A8%E5%85%B1%E6%BC%94%E3%81%99%E3%82%8B+%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%8F%E3%82%A4%E3%82%AF+%E3%81%8F%E3%81%BE%E3%81%A3%E3%81%B7%E3%81%99

http://search.goo.ne.jp/web.jsp?MT=%E3%82%B4%E3%83%BC%E3%82%AB%E3%82%A4%E3%82%B8%E3%83%A3%E3%83%BC%E3%81%A8%E5%85%B1%E6%BC%94%E3%81%99%E3%82%8B+%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%8F%E3%82%A4%E3%82%AF+%E3%81%8F%E3%81%BE%E3%81%A3%E3%81%B7%E3%81%99&STYPE=web&SH=1&IE=UTF-8&OE=UTF-8&from=gootop

http://www.bing.com/search?q=%E3%82%B4%E3%83%BC%E3%82%AB%E3%82%A4%E3%82%B8%E3%83%A3%E3%83%BC%E3%81%A8%E5%85%B1%E6%BC%94%E3%81%99%E3%82%8B+%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%8F%E3%82%A4%E3%82%AF+%E3%81%8F%E3%81%BE%E3%81%A3%E3%81%B7%E3%81%99

http://www.baidu.jp/s?tn=baidujp&ie=utf-8&cl=3&ct=262144&wd=%E3%82%B4%E3%83%BC%E3%82%AB%E3%82%A4%E3%82%B8%E3%83%A3%E3%83%BC%E3%81%A8%E5%85%B1%E6%BC%94%E3%81%99%E3%82%8B+%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%8F%E3%82%A4%E3%82%AF+%E3%81%8F%E3%81%BE%E3%81%A3%E3%81%B7%E3%81%99


クローラーが解釈できるのは、せいぜい、javascript で展開するアンカーだけのようです。
javascript によって作成される動的なメニューを解釈できないと、サイト内のクロールができないからでしょう。


# 長文、すみません =)


fmht7さんのコメント
詳細でリーズナブルな長文ありがとうございます。 スターをロードした時にはスターコメントがあれば吹き出しが薄いオレンジになっていて、その時点でスターコメントの文字列はロードされているのでしょうか? 吹き出しをクリックしないとスターコメントをサーバから読み込まないとすると、普通のアンカーは辿れるクローラでもちょっと難しいと思いましたが、ページをロードした時点でスターコメントも読み込めるのであれば、クロールしてくれてもよさそうな気がしました。 #大した内容じゃなくてすみません^^

a-kuma3さんのコメント
>> スターをロードした時にはスターコメントがあれば吹き出しが薄いオレンジになっていて、その時点でスターコメントの文字列はロードされているのでしょうか? << その時点で、既にロードされてます。 最近のFirefox だと、ctrl + shift + K で、ブラウザが出したリクエストとか、エラーの状況がプラグインなしで確認できます。 クローラーが javascript を、どこまで解釈するかは、コストとの兼ね合いなんだと、想像します。 トップページの javascript で表示されているメニューを解釈できないと、そのサイトのページをカバーできないので、検索範囲が狭くなってしまう、というのが検索エンジンにとって無視できない問題なのでしょう。 それに比べて、1ページの中で javascript が展開する文字列は、HTML で性的に展開される情報に比べて、少ないと思われるので、そこに処理コスト(と、開発のコスト)をかけていないのでしょう。 それに、javascript のオブジェクトが抱えている文字列が、ページのコンテンツの一部であるかどうか、というのは、プログラムで判定しにくい、ということもあります。 スターコメントは、明らかにコンテンツの一部だと思いますが、HTML 要素の属性や ID がコンテンツかどうか、というのは、判断が難しいと思います(特に、英語圏)。 想像ですが、クローラーの javascript の解釈は、ユーザのアクションが伴うものかどうかの判定もしてないと思います。 トップページのメニュー然り。 多分、&lt;script&gt; もクロールの対象にして、URL と思しき文字列があったら、アンカーに準ずる処理をしているのではないでしょうか。 因みに、最近の Firefox だと、ctrl + shift + K で、ブラウザが出したリクエストとか、エラーの状況が、プラグイン無しで確認できます。 # 「ポイントください」の次には、「長文、失礼しました」が流行る(わけない =)

fmht7さんのコメント
#個人的には「ポイントください」の方が清々しくて清々してて好きです:-D

3 ● taroe
●10ポイント

http://www.suzukikenichi.com/blog/google-can-read-javascript-and-pass-pagerank-and-anchor-text/
http://www.suzukikenichi.com/blog/msnbot-reads-javascript-and-what-about-googlebot/

>はてなスターのスターコメントは検索エンジンの検索対象になりますか? クロールされるのでしょうか。

・なることを期待してはいけない
・ならないことも期待してはいけない

となってます。

クロースされてる可能性はあるが
検索エンジンには出てきたのを見た人はいないというところでは?

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ