俳句のスクレイピングひとまず終了!ーWebアプリ制作日記その7

AIアプリ制作
まだまだ先は長い。ホンマ、終わるんかいな。

今回のエラーメッセージは、

NoSuchElementException : Message : no such element : Unable to locate element : {“method” : “css selector”, “selector” : “.srl”}

エラーが出ると、することは2つ。

1.Google翻訳で和訳する。
2.その和訳を(もしくはエラーメッセージをそのまま)ググる。

今回は、エラーメッセージをそのままググったら、
teratail」に同じような質問をした人がいて、

1.レスポンス遅延で画面表示が遅い場合、待機時間を長くしてみる。
2.要素の指定方法が間違っている。指定の仕方が合っていても、ある条件下においてのみ表示される要素を指定していないか?を確認する。

という回答があった。

1.は、

import time
from time import sleep

とし、

browser.get(url.format(url_num))

のあとに、たとえば

time.sleep(5)

と、5秒の待機時間を設ける方法。

これは、
Webサービスに過度の負担をかけない礼儀でもあり、
エラー対応ではなく、あとで入れておきたい。

さらにいろいろ調べて、
ピンときたのが
try-except文を使った例外処理」
だ。

つまり、

エラーが発生すると、そこで繰り返し処理が止まってしまうので、
エラーが発生したらいったんその繰り返し処理を止め、
次の繰り返し処理を実行する、

というコードを書けばうまくいくと思うのだ。

えらそうに書いたが、
そんなコードを書く力はないので
ここからは
キカガク長期コースの先生に頼る。

質問すると、
すぐにコードが送られてきた。

exceptのあとにcontinue文か!(なんかスクショ小さい)

exceptのあとに
「例外発生時に行う処理」
を入れるのだが、
そこに、
continue文が組み込んであった。

これを実行するとエラー箇所は無視され、
最後までfor文が実行され、
16,422句のスクレイピングに成功!
pandasできれいに表示して確認。

pandasはデータ処理に必須!

今日はここまでとして、

haiku_df.to_csv(‘haiku_scraping2.csv’)

で、csvファイル(ファイル名: haiku_scraping2.csv)に保存。

スクレイピングはここでいったん終了し、
次回から、
いよいよ分散処理に入る。

Follow me!