本を読む

読書やコンピュータなどに関するメモ

スプログにありがちな2つのパターン

 ブログ検索は便利です。が、メジャーな単語だと、スプログ(スパムのブログ)がけっこう混じってくるのが厄介です。特に、検索結果をフィードとかでチェックしている人は、スプログがわずらわしくてたまらないはず。

 ここでは、スプログにありがちな2つのパターンをメモしてみます。

1. エントリーが1つしかないブログ

 それなりにデザインを工夫してあって、人間がちゃんと書いたらしいブログ。でも、よく見るとエントリーが1つしかない。

 そんなブログは、スプログかもしれません。

 機械的に調べるには、こんなコード(Perlの例)になるかと思います。

use XML::Feed;

sub single_entry_feed {
    my ($uri) = @_;
    my $feed_uri = (XML::Feed->find_feeds($uri))[0] or return;
    my $feed = eval { XML::Feed->parse(URI->new($feed_uri)) };
    $feed->entries == 1;
}

 スプログじゃなくて、ちゃんと書いた最初のエントリーだったらごめんなさい。

2. JavaScriptでリダイレクトするブログ

 アクセスしてみると普通のブログらしい。だが、検索したキーワードはないし、よく見るとアドレスバーのURLも変わっている。

 そんなブログは、スプログかもしれません。

 元のブログにwgetなどでアクセスしてみます。おや、HTMLの先頭がこうなっています。

<script src=http://example.com/examplejp.js></script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 DOCTYPEの前に外部のJavaScriptを呼び出していますね。このJavaScriptをwgetなどでアクセスしてみます。

location='http://hoge.example.jp/?eid='+Math.ceil(Math.random()*10);

 JavaScriptでリダイレクトしています。そのため、検索サイトのクローラーには元のブログが、Webブラウザーにはリダイレクト先のブログが、それぞれ見えるわけです。

 機械的に調べるには、こんなコード(Perlの例)になるかと思います。実用で使うにはLWP::Agentを使うと思いますが。

use LWP::Simple;

sub js_redirect_feed {
    my ($uri) = @_;
    my $c = get($uri);
    scalar($c =~ /\A[^\n]*\<script /);
}

まとめ

 ここで紹介した2つのパターンは、Plaggerでフィルタリングしたりして使えそうです。ただし、公開したらスプログ側で新しいパターンに変更してしまいそうですが。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/278-c92d386e

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad