RPA (Web情報回収005_取得したデータの操作)

■取得したソースを加工する
前回websiteのページからソースコードを取得することができたので、今回、そのコードから必要な情報を取り出せないか試してみる。
取得したソースコードの操作はjavascriptでできるはずなので、RPAのアクションのjavascriptを実行が使えそう。少しサンプルを作ってみた。
「JavaScript: 開く」のアクションで実行するスクリプトを選択し、「Javascriptを実行」で実際に動かすよう(下の図)。ここで、スクリプトは手動インポートとして直接javascriptの関数(function createElement)を記入しており、パラメータ(html)として実行時にTemp3を入力している。出力はTemp2に保存。

実行結果は正しく出た。入力したものをそのまま出力しているだけなので、Temp3として入れた<html>~</html>の値がそのまま出力されている。


RPAのアクションでのjavascriptの使い方は分かったので、実際にソースコードを操作するjavascriptを作成してみる。
いろいろとサンプルを見ながら、下のようなjavascriptファイルを作成した(webcoll2.js)。これは、パラメータ(html)に入力した文字列をDOM形式(htmlタグなどで認識される形)に変換し、getElementByIdでcontentsのidを持つ中身を返すもの。

function createElement(html) {
    const temp = document.createElement('div');
    temp.innerHTML = html;
    document.body.appendChild(temp);
    var z = document.getElementById('contents').innerHTML;
    return z;
}

下のhtmlファイルでwebcoll2.jsを読み込んで関数を実行すると、contentsのidの中身Content partを取り出しているので、javascriptとしてはこれでよさそう。

<!DOCTYPE html>
 <html lang="ja">
<head>
</head>
<body>
   <script src="webcoll2.js"></script>
   <script>
    document.write(createElement('<html><body ><p id="contents">Content part</p><ul><li>AAA</li><li>BBB</li><li>CCC</li></ul></body></html>'));
   </script>
</body>
</html>


しかし、これをRPAのアクションに記入して実行してみると、bot errorと返ってきた。

const temp = document.createElement('div');の一文だけを上で成功したものに追加して実行してみると同じくbot errorが返ってくる。原因はよく分からないけど、おそらくdocumentのあたりが問題になっているよう。documentはブラウザ上でのみ実行されるとか?
documentは基本的なものだろうから、これが使えないというのも考えにくい気がする。もう少し解決策なり回避策なりないか試しみたい。