1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HTML Paserで連続ダウンロード

Posted at

はじめに

Automation 360の「ブラウザ/ファイルをダウンロード」は1個のファイルをダウンロードします。
ダウンロード用Webページに複数の落としたいファイルがあって、それらを全てダウンロードするときはループさせなければならない。
ダウンロードファイルのURLが規則的な名前になっていたらいいですが、そうでない場合ちょっと面倒。
そういった場合、HTML Paserパッケージを使うと楽に実現できる場合があります。

郵便番号データを落としてみる

サンプルとして以下から郵便番号データ(zipファイル)をダウンロードします。
https://www.post.japanpost.jp/zipcode/dl/kogaki-zip.html

大まかな流れは以下。
(1) 郵便番号データのWebページを表示。
(2) WebページのHTMLを読み出す。
(3) 読みだしたHTMLをHTML Paserにかけてダウンロードファイルの一覧をリスト変数で作る。
(4) リスト変数をループさせ、その中でファイルダウンロード。

先に完成品のイメージをつけておきます。
htmlpaser01.jpg

HTML Paserの入手

HTML PaserはAutomation 360に標準で入っていないためBot Storeから入手します。
https://botstore.automationanywhere.com/bot/a2019-html-parser-package

Automation Anywhere社が提供しているもので無償です。

HTML Paserの使い方

HTML Paserパッケージにはいくつかのアクションがありますが、ここではSearch with Selectorを使いました。
htmlpaser02.jpg

変数$prompt-assignment$には「ブラウザ: ソースコードを取得」を使い、WebページのHTML全体を読み込んでいます。

ブラウザ上で「右クリック/ページのソースを表示」して、HTMLソースを先に見ておきます。
htmlpaser03.jpg

ダウンロードしたいzipファイルは、
<tr class="arrange-c">タグの下の<td>の下の<a>タグで定義されている事がわかります。
このとき、Search with SelectorアクションのSelector欄で以下のように指定します。

tr.arrange-c>td>a

また、List of Elements of type Dictionary欄に解析結果を出力するリスト変数を指定します。
これでSelector欄の条件にあったタグの情報がリストに入りますのでループで処理できます。
ここではparseListという変数に格納しています。

ループ処理

ループでparseList変数の各項目に対して回します。このとき、「現在の値を変数に代入」で辞書変数を指定します。ここではListItemDicとしています。
htmlpaser04.jpg

少し難しいのはListItemDicはディクショナリ(辞書)形式になっている点です。
検出した箇所全体はhtmlというキーに入っています。すなわち$ListItemDic{html}$です。
例えばループの最初では「<a class="inline" href="kogaki/zip/01hokkai.zip">北海道</a>」が入っています。
$ListItemDic{html}$から「文字列: テキストを抽出」を使いzipファイルをURLを作り、それを「ブラウザ/ファイルをダウンロード」にかけたのが一番最初の画像です。

ちょっとしたハマりどころ

  • 「ブラウザ: 開く」と「ブラウザ: ソースコードを取得」の間に遅延入れておかないと、ソースコードを取得でエラーになりやすい。
  • 「ブラウザ: ソースコードを取得」はChomeしか使えない。

さいごに

ここまで書いておいて今さらですが、
こういうのって、いわゆる「ダウンローダー」を使った方が楽かもしれません。

何でもかんでもRPAでやるのではなく、適材適所で柔軟にやりましょう。

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?