#ざっくり手順
1.コメントをごっそりhtmlとして保存する
2.コメント本文だけを抜き出す
3.集計
#1.コメントをごっそりhtmlとして保存する
url一覧を作ってチョメチョメしてwgetでDL
具体的には
download.sh
#!/bin/bash
cat urllist.txt | perl -lne 'for($i=1;$i<=10;$i++){print $_."index.php?p=".$i}' > urllist2.txt
# wget -i urllist2.txt
# アクセス過剰で503で死んだので適当にスリープ
while read line
do
wget $line
sleep 10
done < urllist2.txt
urllist.txtには改行区切りで投票やってる活動報告個別ページurlを記載
作業用にurllist2.txtが出力される。
index.phpp=[0-9]なファイル名で結果が出力されるので適当にディレクトリに纏める。
#2.コメント本文だけを抜き出す
タグからコメント部分だけをブチ抜く。
コメント部分の開始終了タグが分かりやすかったのでその辺を目印に適当に
getcomment.pl
opendir (DIR,"resultfiles");
@file = readdir(DIR);
closedir(DIR);
open OUT,">./results.txt";
foreach $file(@file){;
open IN,"./resultfiles/$file";
$flg = 0;
while ($line = <IN>){
print "$flg";
if($line =~ /<div id="blog_comment">/){
$flg = 1;
}if($line =~ /<\!\-\-blog_comment\-\->/){
$flg = 0;
}
if($flg == 1){
$line =~ s/\<.*?\>//g;
print OUT $line;
}
}
}
3.集計
sortしてuniq
cat results.txt|sort|uniq -c > allresult.txt
表記揺れとかアホほどあったのでそこは適当にガシガシ編集する感じで。
投票にgoogle formとかのアンケ機能素直に使ったほうが集計作業は楽だったんじゃないかと思いました。まる