Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

小説家になろうの活動報告欄でアンケート取ってる人が居たので集計してみた話

$
0
0

ざっくり手順

1.コメントをごっそりhtmlとして保存する
2.コメント本文だけを抜き出す
3.集計

1.コメントをごっそりhtmlとして保存する

url一覧を作ってチョメチョメしてwgetでDL
具体的には

download.sh
#!/bin/bashcat 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 $linesleep 10
done< urllist2.txt

urllist.txtには改行区切りで投票やってる活動報告個別ページurlを記載
作業用にurllist2.txtが出力される。
index.phpp=[0-9]なファイル名で結果が出力されるので適当にディレクトリに纏める。

2.コメント本文だけを抜き出す

タグからコメント部分だけをブチ抜く。
コメント部分の開始終了タグが分かりやすかったのでその辺を目印に適当に

getcomment.pl
opendir(DIR,"resultfiles");@file=readdir(DIR);closedir(DIR);openOUT,">./results.txt";foreach$file(@file){;openIN,"./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;printOUT$line;}}}

3.集計
sortしてuniq

cat results.txt|sort|uniq -c> allresult.txt

表記揺れとかアホほどあったのでそこは適当にガシガシ編集する感じで。
投票にgoogle formとかのアンケ機能素直に使ったほうが集計作業は楽だったんじゃないかと思いました。まる


Viewing all articles
Browse latest Browse all 2722

Trending Articles