さまざまな物や事に関する、役に立ったり立たなかったりするテキストが綴られるブログ。

2013/07/06

naver.comのスクレイピングに対策を講じてみる

レイアウトはそのままです
ヒマつぶしにアクセスログなど眺めていると、ちょっと気になる"jptrans.naver.net"というサイトからのアクセスを発見。「これは何ぞ?」と思い検索してみると、Web翻訳システムによるスクレイピングの痕跡であることが分かりました。

スクレイピングというのは、Webサイトなどに掲載されているコンテンツを取得して別サイトで利用する技術。Webスクレイピングとも呼ばれます。

言葉自体にネガティブな響きはないようですが、使い方によっては相当にグレーな雰囲気となります。モノは試しと、以下の該当URLを表示させてみると...

http://jptrans.naver.net/j2k.php/korean/blog.hogehoge.com/
※現在は対策済みのため、オリジナルが表示されます。

こりゃたまげた。冒頭のスクリーンショットを見ての通り、すっかりハングル化されております。しかも、妙に再現度が高い。ハングルが理解できないので翻訳の精度は不明ですが、レイアウトに関してはほぼ正確に再現されております。Google翻訳にも見習って欲しいほど。

あまりうるさく言うつもりはないのですが、これはちょっとアレ。Web翻訳の結果であることを示すモノは何一つなく、スタンドアロンのコンテンツとして成立しちゃってます。これでは重複コンテンツとしてGoogleにチェックされてしまう可能性も。

彼の国のユーザからしたら便利な機能なのかもしれませんが、この手法は頂けません。読んでいただけるのはとてもありがたいことなので、翻訳を希望する場合、少々不細工ではありますがGoogle翻訳などをご利用いただきたく。

ということで、こちら側ではサクッと対策を講じてみることに。

参考にさせていただいたのはこちらのコンテンツ。記事のコメント内にてHTMLで記述する場合のやり方が書かれており、これをBlogger(Googleの運営するブログサービス)に転用させていただきました。厚く御礼申し上げます。

具体的な作業内容はというと、テンプレートの"HTMLの編集"にて、以下のコードを</head>の直前に挿入。テンプレートを保存すれば即座に効果を発揮します。
<!-- スクレイピング防止 for j2k.naver.com -->
<script type='text/javascript'>
if(location.host == &quot;j2k.naver.com&quot; || location.host == &quot;jptrans.naver.net&quot;){
window.top.location =&quot;http://blog.hogehoge.com/&quot;; //
}
</script>
なお、上記コードをご自身のBlogに適用する場合、"http://blog.hogehoge.com/"を適用したいサイトのトップページのアドレスに書き換えてくだされ。

それにしても、久しぶりに"HTMLの編集"など触ったもので、エディタの豹変ぶりには驚きました。しかも、Webブラウザの検索機能で</head>を探そうとしても見つからず。

行番号に付いている三角印をクリックすると折りたたまれていた部分が展開され、その中で見つけることができました。Webブラウザの検索機能が使えないなら、専用の検索機能を用意して欲しいところです。

で、その効果の確認方法ですが、該当URLを表示させた際、オリジナルのサイトにリダイレクトされれば成功。たとえ個別記事のURLを指定したとしても、問答無用でトップページが表示されます。

Web翻訳には良くお世話になっているので、それ自体を否定するつもりはありません。が、レイアウト込みですっかり使っておきながらユーザ(読者)に対して何の説明もナシというのはいかがなものかと。

そこそこ有名なサービスなのだから盗用まがいのことはせず、真っ当な手法を取って欲しいものです。フレームを使用するパターンでは免罪符的な一文が添えられているようですし。



Related Posts with Thumbnails

3 件のコメント:

匿名 さんのコメント...

初めまして、こんばんは。
私もちょうどブログの解析からneverのリンクを見つけて嫌だなあと思い、早速検索してこちら様に辿り付きました。
早速参考にさせていただいて対策を講じたいと思います。ありがとうございました!

匿名 さんのコメント...

初めまして、対策を書いてくださりとても助かりました。ありがとうございます。
私のパソコンで確認したところ、記載されているコピー用のタグに不要な部分があることに気付きました。ifの後にいくつかある& quot ;を削除しないと反映されないようです。こちらの記事を参考にされる方も多いため、コメントさせて頂きました。

WHMaster さんのコメント...

ご報告ありがとうございます。

ウチでは掲載したスクリプトのままで動いているのですが、もし動かないという方には、ダブルクォーテーションの除去をお試しくだされ。

新しい投稿へ 以前の投稿へ ホームへ