RED’sランキングを抽出保存してみる

By | 2013年9月16日

こんちくわ。

結構前からですが、公式のRED’sランキングが見づらい+1日分しかないという問題があり、うまくやってくれんか?

という質問を受けています。

 

色々テストしていたのですが、結局テキスト抽出整形に落ち着いたという・・。

最初は、データベース化をしようと思ったのですが、膨大な無意味なデータがもったいない。

次に、テーブル+ソート+検索化をしてみたのですが、サイズが大きい。

毎日全鯖保存は厳しいのでテキストにすることにしました。

私の技術ではこの辺で妥協しか出来ませんでした。

RED’sランキング@わいつ

一応、思いつく方法を載せておくので、詳しい人へ丸投げしたいです!

 

スクレイピング(公式サイトのデータ抽出)

PHP Simple HTML DOM Parserを利用しました。

今、使用しているソースの元を載せて置きまする。

< ?php
include_once('./simple_html_dom.php');
$html = file_get_html( 'サイトのURL' );
$src = array();
foreach($html->find('tr[class=rank3],tr[class=rank]') as $key => $element){ 
$src[$key] = $element->plaintext;
}
foreach($src as $rank){
$rank = preg_replace('/\s+/', "\x20", $rank);
$rank = mb_convert_encoding($rank, 'utf8', 'sjis-win');
echo $rank . '
'; } $html->clear(); unset($html); ?>

2行目:simple_html_domを読み込みます。
3行目:公式サイトの取得ページURLを書きます。
5行目:公式ランキング内のtr[class=rank3](TOP3)とtr[class=rank](その他ランク)を探します。
6行目:探した内容をテキスト出力します。HTMLのままならoutertextと書きます。(tableにしたい時など)
9行目:空白文字の連続を半角スペース1つに変換する。
10行目:公式はsjisなのでutfへ変換する。
11行目:1行表示後に改行を入れる。
13行目:メモリのクリーンアップ

使い方の詳細はPHP Simple HTML DOM Parserの使用方法

あとは、Cronにぶっ込んでいるだけです。

2 thoughts on “RED’sランキングを抽出保存してみる

  1. ジフ

    全職混合の999位までだと720Lvぐらいまでしか見れないので
    下記のサイトのように職業ごとに999位まで取れないでしょうか?
    http://rslvlog.blog.fc2.com/

    各職ごとの999位だと霊術師とかは300Lvぐらいまで見れてGvの相手を検索する時にとても便利になるのですが…

    Reply
    1. わいつ Post author

      以前作っていた全職Verをアップしておきました~

      Reply

わいつ にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。