こんにちは。ryupiです。
Uipathのスクレイピングが安定しなかったので、色々と調べて試行錯誤した結果、リトライスコープで1発解決しました
データスクレイピング失敗の原因の多くは、ページ読込が完了する前に次の処理をしようとして起こっています
そのため、スクレイピングする画面が読み込み完了するまでしっかり十分に待つことが重要です
備忘録も兼ねて、試行錯誤した内容をまとめました。
まず、試したことは以下の通りです。
- 待機(DELAY)
- リトライスコープ(RETRY SCOPE)
- トライキャッチ(TRY CATCH)
待機(DELAY)はユーザーに不親切
まず試したのは待機です
5秒とか10秒とか長い時間に設定すれば、動くのは動くのですが、遅すぎてユーザーフレンドリーではないのでNG
そこで色々と調べるとトライキャッチ(TRY CATCH)とリトライ(RETRY)を組み合わせるやり方があることを知りました
トライキャッチ(TRY CATCH)とリトライ(RETRY)を組み合わせるのはなぜかうまくいかない
このやり方の概略は以下の通り
①Try内でエラー発生
②Catchに移行
③エラー時の処理を行った後、再スロー
④Retry Scopeがエラーを検知し、再実行
再スローの箇所で思うように動作せず断念
参考にしたサイト
【UiPath】Try CatchとRetry Scopeを組み合わせたエラー対策 | KYOSO PRAS+
皆さんこんにちは。開発エンジニアのKです。 朝晩は徐々に過ごしやすい気温になって来ておりますが、日中はまだまだ暑い日が続いております。 皆さんいかがお過ごしでしょうか。 ……
リトライスコープ(RETRY SCOPE)だと簡単でうまく使いこなせた
そこでシンプルにリトライスコープだけにしてみたら、うまくいきました
こんな感じで取得した任意の要素がない場合は再度時間をおいてリトライするようにしました
まとめ
Uipathのスクレイピングが安定しなかったので、色々と調べて試行錯誤した結果、リトライスコープで1発解決しました
リトライスコープ便利なので、使ってみてください