adelie
(yukino yasu )
1
現在DataScrapingを使用してWebページからデータを取得する処理を実装しています。
対象のWebページは複数ページにわたっているため、DataScrapingで複数ページ取得するように設定しているのですが、うまく全件取得できず悩んでおります。
対象Webページの情報的に一度に全列取得するのが難しく、同じページを2回DataScrapingしてそれぞれ取得したい列を取得しています。
(対象Webページは社内用のため展開できません、すみません・・・)
先日UiPathのカスタマーサポートに問い合わせて、WaitForReadyプロパティをINTERACTIVEに設定するとよい、と回答いただき試してみたのですが、10回実行するとそのうち数回は全件取得できない状態です。
そのため現状はDelayプロパティを10秒設定してなんとか正常にデータを取得できるようにしています。
ですが、全部で10ページ以上あるWebページのため、毎ページ10秒ずつDelayしていると処理時間がかかりすぎてしまいます。
おそらく次ページへ遷移した際に、画面がすべて表示される前にデータを取得してしまっているのが原因ではないかと思っております。
DataScrapingを使用して複数ページのデータを取得する際、画面の表示がすべて完了してからデータを取得したいのですが、何か良い方法をご存知の方がいらっしゃいましたらご教授いただけるとありがたいです。
申し訳ないのですが、よろしくお願いいたします。
Yoichi
(Yoichi)
2
こんにちは
そうであればWaitForReadyはCompleteのほうが良いように思えますが...。
あるいは、Element ExistsアクティビティやFind Elementアクティビティなどを用い、対象要素(テーブル?)より下方にある要素に対して、出現するまで待機するようなロジックなどが考えられると思いますが、いかがでしょうか?
adelie
(yukino yasu )
4
ありがとうございます。
あるいは、Element ExistsアクティビティやFind Elementアクティビティなどを用い、対象要素(テーブル?)より下方にある要素に対して、出現するまで待機するようなロジックなどが考えられると思いますが、いかがでしょうか?
この場合、DataScrapingで複数ページ取得するのではなく、1ページずつデータを取得して次ページに遷移するたびに対象要素より下方にある要素が出現するまで待機する、といった処理の流れになるのでしょうか?
お手数をおかけして申し訳ありませんが、よろしくお願いいたします。
Yoichi
(Yoichi)
5
こんにちは
ご推察のとおり、DataScapingでは複数ページ処理せずに、1ページづつ処理するようになると思います。2回DataScrapingを通しているとのことですが、マルチページで2回通しているのなら、こちらの方が画面遷移の回数も減るという効果もあると思います。
adelie
(yukino yasu )
6
返信ありがとうございます。
1ページずつ処理して動作を確認してみたいと思います。
また不明点があった際はご質問させていただくかもしれないですが、その時はよろしくお願いいたします。