#oyasuminase

駆け出しオタクエンジニア

LINE botで占い情報を毎日通知しようとしたら失敗した

昨日のやつ失敗しました。

oyasuminase.hatenablog.com

結果

失敗といってもちゃんと占いメッセージは届きました。

おはようございます。
みずがめ座の今日の運勢は8位です。

嫌なことをお願いされそう
はっきりとした口調で断り





ラッキーポイント





画集

ラッキーポイント溜めすぎでしょ…行間空きすぎなので修正します。

修正

当然ここに問題があります。get_text(',')table以下のテキストを取得しているのは良いのですが要素の区切り全てでカンマが挿入されている気がします。

 for t in info.section.div.table.get_text(',').split(','):  
        text += t + '\n'  

リクエストを投げてhtmlを確認してみます。

<div class="rankArea">
  (中略)
  <section>
    <div class="textAstro">
      <p class="wordBgnng">嫌なことをお願いされそう<br/>はっきりとした口調で断り</p>
      <table>
        <tr>
          <th id="starTitle">ラッキーポイント</th>
        </tr>
        <tr>
          <td>画集</td>
        </tr>
      </table>
    </div>
  (中略)
  </section>
</div>

<th><td>それぞれ一行ずつで一組です。<tr>の奇数偶数でも判別できますしいろいろ方法はあると思いますがforで回していた配列を確認すると

['\n', '\n', 'ラッキーポイント', '\n', '\n', '\n', '画集', '\n', '\n']

タグの間の改行コードが拾われていたみたいですね。例によって時間が無いので今回はこれをスキップすることで凌ぎます。

    for t in info.section.div.table.get_text(',').split(','):
        if t == '\n' : continue
        text += t + '\n'

print()で確認。

みずがめ座の今日の運勢は8位です。

嫌なことをお願いされそう
はっきりとした口調で断り

ラッキーポイント
画集

OK。

おわりに

そもそもローカルで一度も実行していないことが問題です。めんどくさかった。反省。でもギリギリ更新間に合ったので満足です。