先日5ちゃんねるの「金沢市」スレッドを使って、投稿数と感情分析スコアとの間に何らかの関係があるのではないかと書きました。1年分だけでは偶然の可能性も考えられるので、もっと過去までさかのぼってやってみました。が...
分析以前にスクレイピングの段階で大ハマり。しばらく投稿できませんでした。
大ハマりの1
金沢市48以降と金沢市47以前でURLが異なる。
金沢市48以降は、各回ごとにfor文で回して簡単に取り込むことができました。
47以前も簡単だよねと余裕で動くものと思っていたら、エラーが出るだけで全く動かない。
原因が分からないのでしばらく放置しているうちに、まさかと思うけどURLが違うんじゃないのと、ふと頭に浮かんで確認してみると、
48以降:https://pug.5ch.net/test/read.cgi/kousinetu/**********/
47以前:https://rosie.5ch.net/test/read.cgi/kousinetu/**********/
本当に違っていた。
こんな初歩的なところで何日もハマっていたのかとあきれ果てて、正しいURLで動かそうとすると、またエラー。
大ハマりの2
金沢市48以降と金沢市47以前でhtml文の構造が違う
金沢市48以降は、各スレッドが格納されている場所は
div class="thread"
で示されており、各スレッドは1から最後の1000+αまでそれぞれidを付けて格納されています。
一方金沢市47以前は、スレッドの格納場所が
dl class="thread"となり、各スレッドは、最初から順に<dd></dd>の中に入っていて、順番に並んではいますがどれが何番のスレかは示されていません。金沢市48以降はfor文でひとつひとつidを指定してスクレイピングしていましたが、47以降は
findall('dd').text
と書くだけで、全スレッドをスクレイピングできるので、これはこれで便利です。
ひょっとしたら過去ログに入れる時点でURLとhtmlを書き換えているのかもしれません。
こんなわけで前回の投稿から時間がかかってしまいました。分析の結果は自分でもびっくりするくらい面白いものが出てきましたので、近日中にまた報告します。