スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

前後の記事

最近の記事

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

FC2BLOGINDEXESログ消失、でもたすかった

ひやっとしました。
今回は毎月ログを貯めているFC2BLOG INDEXES11月分のログを消失してしまったけれど、htmlSQLのおかげで復活した、という話。

FC2BLOG INDEXESのしくみは、ローカルでYahoo!、Googleにクエリを送り、戻ってきた値を読み取り、サーバー番号1から順にログに保存、前月の場合はサーバ122のインデックス数読み取りの時点でデータ読み取りを終了します。
ログはCSV形式で保存。11月分の場合だと、



629000,209000,
909000,88100,
768000,65900,
784000,74800,

といった感じになります。
で、あとはログを元にページを形成するスクリプトで静的なページをつくり出して、ログはローカルに置いたまま、生成したページをサーバにアップロードします。このローカルに置いているログが無くなってしまったのです。

ページを形成するときに前月分のログを読み込み、比較して、前月とのインデックス数の増減をはじきだしています。11月分のログが消失してしまうと、来月12月では前月との比較ができないんです。これは困った。一行一行自力で書いていってもいいですけど、時間がかかる。

と、そのとき思い出したのがhtmlSQL。これはhtmlの要素をSQLライクに取り出すことのできるPHPライブラリです。

ということで、FC2BLOGINDEXESからインデックスデータのみを抽出してみました。

SELECT text FROM td WHERE $style == "text-align:right"

インデックス数を表示している箇所は<td style="text-align:right">数値<br>数値</td>と記述していますから、あとひと処理加えて、以下のような配列が抽出されます。

Array
(
[0] => 629,000
[1] => 209,000
)

Array
(
[0] => 909,000
[1] => 88,100
)

Array
(
[0] => 768,000
[1] => 65,900
)
あとはループ処理中にCSV形式で保存するだけ。救われました。
おそらく他の方法でもっと簡単に抽出することもできるんでしょうけど、以前から一度試してみたいと思っていましたので、タイミングのいい消失でした。

関連

htmlSQL
HTMLの要素をSQLのように取り出せるPHPのライブラリ『htmlSQL』
ニュースサイトを解析…htmlSQLを使ってみる

前後の記事

最近の記事

トラックバック

この記事へのトラックバックURL:
http://fc2blogshop.blog13.fc2.com/tb.php/895-3f64aeb1


コメント

管理者にだけ表示を許可する
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。