LoginSignup
0
0

automation anywhere に入門しました。 HTML Parserを使用してパースする。

Last updated at Posted at 2023-08-25

最近RPAを初めて触ったのですがその際に詰まった事があり、参考記事が少なかったので共有します。

依頼された要件は毎日手動更新しているものがあるので、スクレイピングをして自動化してほしいという内容です。(対象は自社サイト)
automation anywhereを使用して作成する事も要件にあり、これのみで作成しています。

作成したものの全容です。
csvのURLからサイトの特定のtextを取得してcsvに格納、更新するというものです。
image.png
csv読み込み → URLにリクエスト → 特定の値を取得する → csv更新

アクションの解説をしていきます。

csv,ループなど..プログラムの構文と同じ感じで使用できます。
REST アクションではheader、プロキシなど設定ができます。
モバイルからのアクセスが必要、URLリストが同一オリジンだった為
User-Agentとkeep-alive(HTTP/1.0の場合)を付与して送信します。

追記: 9/02
HTTP keep-alive
クライアントが接続を開いておく意思があることを示します。接続の維持は HTTP/1.1 の既定の動作です。ヘッダー名のリストは、介在する最初の非透過プロキシーやキャッシュが削除するヘッダーの名前です。既定でした
警告: Connection や Keep-Alive などの接続固有のヘッダーフィールドは、HTTP/2 では禁止されています。Chrome と Firefox は HTTP/2 レスポンスでそれらを無視しますが、Safari は HTTP/2 仕様の要件に準拠しているため、それらを含むレスポンスを読み込みません。
https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Connection
また最後の通信でConnection: closeを付与するとより早く通信を切断でき、
サーバの負荷を軽減して丁寧かもしれません。(keepalive_timeout値を確認)
またブラウザからもタイムアウト値はせっていでき、ブラウザのタイムアウト値はサーバーより短くしておきます
https://zenn.dev/forcia_tech/articles/202305_http_keepalive

image.png

レスポンスは辞書型で返してくれます。
image.png

resDictのBodyを※1HTML Parserの CSSセレクタ検索でパースします。
image.png

listにdictを格納することができなくなっており、アクションから返り値を作成する事が出来ないので
あらかじめサブタイプを任意にしたリストを用意しておきましょう。
成功するとlistにdictを格納して返してくれます。
image.png

この表示確認出来そうなdictを見るとエラー発生で落ちます。
image.png

多次元配列はTable形式でしか直ぐ確認出来ません。
なのでこの中の値を確認する為にループを使用する必要があります。
image.png
参照できました。

image.png
後はリストからも参照は可能なので $parse_html[0]{text}$ でも値を取り出せます。

※1

HTML Parser.pdf
https://s3-us-west-2.amazonaws.com/botstore-media/wp-content/uploads/2020/08/02095120/a2019-html-parser.pdf

英語なのでここに突っ込んでください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0