8
6

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 5 years have passed since last update.

【Automation Anywhere】Salesforce からWebスクレイピングでデータを抜き出す

8
Last updated at Posted at 2019-09-24

Salesforce と Automation Anywhereの連携については、Bot StoreにはAA公式の「Get Custom and Standard Objects of Salesforce」「Run Query to get Sales Data」などが存在していますが、いずれもAPI連携でありセキュリティトークンの入手など、Salesforce管理者との間で手続きが必要になります。

そこで、今回は最もお手軽なWebスクレイピングでSalesforceからデータを取ってくることを考えてみます。

あらかじめ別画面でログイン、Classic、アクセシビリティの設定を行う

Salesforceへのサインイン処理を省くために、今回はあらかじめ別のInternet Explorerの画面でログインをしておくことにします。こうすることで、別のInternet ExplorerでロボットがSalesforceを開こうとしたときにサインインの処理を省略することができます。

また、SalesforceのユーザーインターフェイスにはLightningClassicの2種類が存在します。デフォルトはLightningになっているはずです。ただし、Lightningは長いリストを下にスクロールしていくと非同期で追加のレコードがどんどん表示されていく構造のためスクレイピングがうまく動きません。その場合は、画面右上の写真アイコンを開いて、「Salesforce Classicに切り替える」を選択してください。
image.png

これで、URLがhttps://*****.lightning.force.com/lightning/からhttps://*****.my.salesforce.com/になったのが確認できるとともに、画面がClassicに切り替わります。
image.png

さらに、Classicモードの右上のメニューで「私の設定」を開きます。
image.png

表示された画面の左側のメニューで「私の設定」-「表示とレイアウト」-「アクセシビリティ」を開きます。
image.png

そして「アクセシビリティモード (Classicのみ)」をONにして「保存」します。
image.png

これで必要な設定は完了です。

一覧からのデータの抜き出し

一覧画面の構造

通常のClassicモードでは、「リード」「取引先」「取引先責任者」「商談」の一覧ビューは、いずれも以下のような同じ構造をしています。表の下には「次へ>>」ボタンがあり、ページをめくることができます。
image.png

HTMLソースを見てみると、表のように見える部分のタグはdivタグになっています。しかし、WebレコーダーのExtract Dataコマンドで繰り返しパターンとしてデータを抜こうとすると、以下のようにdivタグの中にtableタグが入っている構造になっているのでtableタグ内を繰り返しパターンとして認識してしまい、実際に実行してみると1行しか取り込めません。

<div>
  <table>
    <tbody>
      <tr>
        <td>コンテンツ1</td>
        <td>コンテンツ2</td>
        ...
        <td>コンテンツn</td>
      <tr>
    </tbody>
  </table>
</div>

これが「アクセシビリティモード (Classicのみ)」がONになると、タグの構造がより簡単なしくみとなり、一覧は全体がtableタグでのみ描かれるようになります。

アクセシビリティモードでの一覧の描画は以下のようになります。ぱっと見、通常のClassicモードと同じですが、よく見ると表の装飾が簡単になっており、「次へ>>」の位置も別の場所になっています。
image.png

Webレコーダーで記録する

それでは、アクセシビリティモードでWebレコーダーを使ってスクレイピングしてみましょう。
image.png

まず、一覧のURL (リード一覧など) を入力して進めます。
image.png

Webレコーダーでは、「Extract Table」ボタンを押します。
image.png

ブラウザー上にマウスカーソルを移動すると、下にあるテーブルの外枠に線が入るので、一覧のテーブルがうまく選択されるようにマウスを動かしてクリックします。
sfdc-table-scraping.png

すると、以下のようなダイアログボックスが起動します。
ここで、Previewで複数行が取り込めていない場合は「Cancel」を押してももう一度トライしてください。「The table spans across multiple pages」をONにしてテーブルが複数ページにわたることを宣言し、「次へ」ボタンを「Capture」します。
image.png

その後、画面右下の「次のページ>」が枠線で囲われるようにマウスポインタを動かし、クリックしてキャプチャします。
image.png

うまくいけば、Next Button DetailsのところにHyperlinkとしてキャプチャされます。確認したら「Next」を押します。
image.png

最後のページでは、結果を出力するCSVファイルを指定します。その後「Finish」を押せば完了です。その後、ツールバーで「Stop Recording」をクリックします。そうすると、タスクを保存するファイル名を効かれるので、好きな名前を付けて保存してください。
image.png

すると、以下のようなアクションリストができあがります。
image.png

得られる結果

あらかじめSalesforceにログインした状態で、作成されたタスクを実行すると、Internet Explorerの画面が起動して該当するページが表示され、ページがめくられていくとともに、情報が抽出されます。
image.png

結果はCSVファイルに保存されます。
image.png

Excelでファイルを開くと以下のようになります。25行毎にヘッダー情報が読み込まれているので、これは削除してください。
image.png

以上で、SalesforceからWebスクレイピングで「リード」「取引先」「取引先責任者」「商談」の一覧ビューから情報をとれることがわかりました!また、「レポート」については、ページの繰り返しなしのテーブルとして指定することで同様に取り込めます。

8
6
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
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?