複数WEBの表データスクレイピング(繰り返し)方法の仕方について


#1

件名の問題についてお力をお貸し下さい。

以下のURLの株価ヒストリー(表データ)を順次スクレイピングし、
出力結果をcsvファイルに追加したいと思います。
URL
https://finance.yahoo.com/quote/DIA/history?p=DIA
https://finance.yahoo.com/quote/SBUX/history?p=SBUX
https://finance.yahoo.com/quote/V/history?p=V

フローとしては、
①URL格納先データテーブルtexttableを構築。
②URLが格納されているcsvファイルを読み取り、
texttableへ格納。
③以下④~⑨をforeachrowで繰り返す。
④texttableの行項目を取得し、textstringへ格納。
⑤textstringでWEBを開く。
⑥ブラウザーにアタッチ ‘* Page’。
⑦構造化データを抽出 ‘TABLE’(株価ヒストリー)し、
ExtractDataTableへ格納。
⑧ExtractDataTableをCSVファイルに追加。
⑨データテーブルExtractDataTableをクリア。

「ブラウザーにアタッチ」は、レコーディング機能で
取得ウイザードを使って作りました。この時、
入力セレクターを添付図の様に編集しました。

ブラウザは3つのURLを順次開きます。
しかし、ExtractDataTableには一番最初のURLの
スクレイピングデータしか格納されていません。
従って、最初のURLのスクレイピングデータを
CSVファイルへ3回追加する事になります。
どの様に修正すれば、各URLの表データを
スクレイピングできるのでしょうか?


#2

こんばんは。

ページが完全に読み込まれる前にデータを取得してしまっているかもしれません。

「構造化データを抽出」の前に、Find Elementで適当な要素を指定し、
WaitForReadyオプションをCOMPLETEにしてみてください。


#3

sgyksgykさま、アドバイス大変感謝しております。

Find Elementを追加したところ、
添付図のタイムアウトを起こしてしまいました。
この手のWEBは広告に時間が掛かったり、
更新中のままだったりする様で、
Elementを見つけられないのです。

やり方を変えて、
スクレイピング後にタブを閉じる様にしたところ、
各WEBの表データをきちんとスクレイピング出きる様に
なりました。
タブを閉じる事によって、始めてExtractDataTableが
初期化される様です。
他にも更新を中止する等方法がある様ですが、
WEBを開きっぱなしにできないので、
この方法でやりたいと思います。

ご協力有り難うございました。
20181210-timeout