ホームページ上の画像をすべて保存したい。

“I’d like to get all the pictures from a home page”

対象のHP(例)のサムネイルをクリックすると表示される商品画像を全て保存するRPAを作成しています。
(※リンク先製品はサンプルとして提示したのみで、弊社のRPAの対象製品ではございません。)

現在、Tab + Enter でサムネイルを選択し、スクリーンショットを撮るアクティビティを使って画像を取得・・・という繰り返しでRPAを作っていますが、
画面解像度が変わるとホームページのレイアウトが変わり、Tabでフォーカスされる対象も変わってしまい、動作が安定しません。

商品画像をすべて取得するよい方法がありましたらご教授ください。

Target homepage(Example)
(* Linked products are only presented as samples, not our RPA’s objective products.)
I’m making RPA that It gets a goods images ,when click a thumbnail , displaying a image.

Now, My RPA select a thumbnail put “Tab key and Enter key”,and get a image using a screen shot activity.
But if screen resolution is too small ,the home page’s layout is changed and an keyboad-focused is do too.
Thus,It is unstable operation.

If you know a good idea, please teach me. Thank you.



Screenshot image
screenshot%20image

E-BAYさんのポリシーはよくわかりませんが、同様なECサイトからコンテンツをダウンロードし、二次的に使用する事は利用規約違反になる事が多いようです。

要らぬお節介でしたらごめんなさい。

表題の件についてのコメント、ありがとうございます。

当該RPAは弊社製品の海賊版の販売をebayさんに削除要請するため、
証拠を保存する用途に使用しております。
※リンク先製品はサンプルとして提示したのみで、本件には一切関係ありません。

先日社内でGOOGLEサイトを使ってのデモを実施した時に、「GOOGLEへのROBOTからのアクセスってOKなの?」と突っ込まれて調べた結果「ダメ」と判断した事がありました。

それを思い出して、要らぬお節介をしてしまいました。ご容赦くださいませ。

あと、出来れば、キャプチャの数例があった方がありがたいです。如何せん、ネットワークポリシーでE-BAYさんサイトへ行けない方もいらっしゃって(かくいう私も)、イメージがわきにくいと思いますので。

如何でしょう?

アドバイスありがとうございます。
GoogleサイトのRPA利用の需要もありそうなので、そのような事例があったということは、大変参考になります。

今回のようなWeb画像の保存ですと、そもそも無断転載等の利用はご法度でありますから、
コンプライアンスやポリシーには十分留意してRPAの作成しなければならないですね。

プロセスの解説とスクリーンショットイメージを質問欄に貼り付けました。
より多くの方にお知恵をお借りしたいため、英語表記にしてしまいましたが、
これでプロセスのイメージが湧きますでしょうか。

お答えになっているか。。。

E-BAYサイトへ行ってみました。なるほどある商品を選択する、サムネイル画面があって、それをクリックするとその上に大きく表示されますね。

UIStudioを開くと表れるuiexplorerで、このサムネイルをひとつひとつ選択すると、規則性のあるエレメントである事がわかります(都合で大なりではなく。。。鍵つき括弧にしています)。

[html title=‘THE BEATLES - HELP - JAPAN LP Vinyl OBI GATE FOLD EAS-80567 | eB*’ />
[webctrl parentid=‘vi_main_img_fs_thImg2’ tag=‘IMG’ />

[html title=‘THE BEATLES - HELP - JAPAN LP Vinyl OBI GATE FOLD EAS-80567 | eB*’ />
[webctrl parentid=‘vi_main_img_fs_thImg3’ tag=‘IMG’ />

このParentIdの末尾の数字が左からのサムネイルの順番になっています。

例えばFor文で繰り返して、その添え字を以って、置き換えてやれば、解像度の都合で3つしかなくても、4番目、5番目がクリックできています。

[html title=‘THE BEATLES - HELP - JAPAN LP Vinyl OBI GATE FOLD EAS-80567 | eB*’ />[webctrl parentid=‘vi_main_img_fs_thImg***" & ix.ToString & "’*** tag=‘IMG’ />

試しにやってみたROBOTを添付します。
ブラウザを上下するロジックまでは組込んでいませんが、ちょっといじってみてください。

EBAY.zip (150。8 キロバイト)

1 Like

ご回答ありがとうございます!
頂いたROBOTを基にして動かしたらうまくいきました!素晴らしいです!

しかしながら、一つハマっていることがあるので相談よろしいでしょうか。
例示していただいた、ROBOTの、for Eachのコレクション部の
" String.Concat(Enumerable.Repeat("*",5)) "
の表記ですが、一番最後の5は5つのサムネイルの数だけループすることと理解しましたが、
今回作成しているRPAの対象商品のサムネイル数は常に一定数ではないため、変数で指定したいと考えています。
(サムネイルが0個だったり、10個だったりするので)。

そこで、このfor eachの直前に、サムネイル数をアクティビティか関数で、引っ張ってくることは可能でしょうか?
小一時間悩んでもうまくいかなかったのでお知恵を拝借したく思います。
何度もすみませんがよろしくお願いいたします。

最大数は分からないと思っています。

ですので、For Eachの繰返し数を100位にし、クリックするアクティビティをTry~Catchで括ってあげて、エラーとなったらCatchに流して、後続処理を続行するようにしては如何でしょう?

丁寧なアドバイスありがとうございます。
トライキャッチを使うことで、無事RPAを完成させることができました。
本当にありがとうございました!

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.