Docly Child

テキストファイルを作成する

615 views

この記事では、AUTOROでテキストファイル(.txt)を作成する方法を紹介します。


テキストファイルを利用する場面

ワークフローのデバッグや、テキストファイル形式でのスクレイピングで使用されます。具体例は以下です。

・セッションログ画面にアクションの結果を表示しきれなかった
・スクレイピング結果をtxtやHTMLファイルとして保存したい
・CSVファイルがうまく展開できない場合のデバッグ

 CreateText(テキストファイルを作成)アクション

CreateTextファイルアクションでは、テキストファイルを作成できます。

 ワークフロー設定例

Webサイトからテキストを抽出し、テキストファイルで保存するサンプルを紹介します。

  • OpenBrowser(ブラウザを開く)を設定します
  • URLを以下とします
    https://support.autoro.io/docs/guide/ブラウザ操作/cssセレクタがうまく取れない/
  • GetText(テキストを取得)を設定します
  • CSSセレクタにbodyを指定します
  • CreateTextFile(テキストファイルを作成)アクションを設定します
  • テキストパラメータに2のアウトプットを指定します。
  • ファイル名を任意の名前.txtとします。

最後に、テキストファイルの中身をAUTORO Local Storageに保存して、中身を確認してみましょう。

  • SaveFileアクションを設定します。
  • ファイルに、3のアウトプットを指定します。
  • ストレージ画面から、3で指定したファイル名を持つファイルをダウンロードします。
  • ワークフローを実行します。
  • ファイルを開いて中身を確認します。

 

CreateTextFileアクションは、デフォルトでUTF-8を使用します。
これが原因で文字化けする場合は、以下をご確認ください。

  • 使用しているテキストリーダーの設定を確認、変更
  • AUTOROのChangeFileEncodingアクションを使用して、文字コードを変換してから保存する

参考:ファイルの文字コードを変換する

# ブラウザを開く
+open_browser_1:
  action>: OpenBrowser
  url: 'https://support.autoro.io/docs/guide/%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e6%93%8d%e4%bd%9c/css%e3%82%bb%e3%83%ac%e3%82%af%e3%82%bf%e3%81%8c%e3%81%86%e3%81%be%e3%81%8f%e5%8f%96%e3%82%8c%e3%81%aa%e3%81%84/'
  lang: 'ja-JP'
  timeZone: 'Asia/Tokyo'
  headless: true
  confirm: true
  windowSize: '1920 x 1080'
  useShadowDomSelector: false
  private: false

# テキストを取得
+get_text_1:
  action>: GetText
  browser: +open_browser_1
  selector: body
  ignoreError: true
  private: false

# テキストファイルを作成
+create_text_file_1:
  action>: CreateTextFile
  text: +get_text_1
  filename: 'createTextSample.txt'
  private: false

# ファイルを保存
+save_file_1:
  action>: SaveFile
  provider: local
  filename: +create_text_file_1
  createPath: false
  private: false
  meta:
    display: null

 設定例:HTMLファイルからのデバッグ

このセクションでは、CreateTextファイルを使用したAUTOROのデバッグ例として、以下の事例に対処する方法を紹介します。

「ロボットでページを開いた時にのみ表示されるページ内HTML要素のCSSセレクタ」を確認するために、ページのHTMLを出力させた。
しかし、セッションログ画面で「サイズ上限を超えたため、payloadを表示することができません。」と表示されてしまった。

よって、HTMLやCSSセレクタを確認できない。
まず、ブラウザ上で「サイズ上限を超えたため、payloadを表示することが出来ません」となるページを開きます。
  • OpenBrowser(ブラウザを開く)を設定します
  • URLを以下とします
    https://docs.autoro.io/actions/browser

1行の簡易なスクリプトを使用して、HTMLを出力します。

  • InjectScript(ページ内でJavaScriptを実行)を設定します
  • 以下コードを貼り付けます
    document.querySelector("html").outerHTML;
  • アクションの詳細設定を開き、「実行時の値を出力(returnValue)」をONにします

CreateTextのファイル名の拡張子を.htmlにすることで、htmlファイルとしての保存ができます。

  • CreateTextFile(テキストファイルを作成)アクションを設定します
  • テキストパラメータに2のアウトプットを指定します。
  • ファイル名を任意の名前.htmlとします。

最後に、3のHTMLファイルをAUTORO Local Storageに保存して、中身を確認してみましょう。

  • SaveFileアクションを設定します。
  • ファイルに、3のアウトプットを指定します。
  • ワークフローを実行します。
  • ストレージ画面から、3で指定したファイル名を持つファイルをダウンロードします。
  • ファイルを開いて中身を確認します。

 

そのままHTMLが開きます。

以下記事のような形で、HTML構造やCSSセレクタを確認し、ロボットで開いたときにしか表示されない要素を調査していきます。

参考:CSSセレクタの取得方法

参考:CSSセレクタがうまく取れない(Selector not found)

※iframe内の要素は意図するデバッグができない可能性が高いです

2の段階で以下のコードを使用すると、iframe内部の要素が取得できる場合があります。
document.querySelector("中身を確認したいiframeタグのCSSセレクタ").contentDocument.querySelector("html").outerHTML;
※ページ構造によっては、この方法ではiframeの中身を取得できない場合があります。

こちらはエラーではありません。

セッションログ画面にて、あるアクションの結果が膨大すぎて、ログの内訳に表示しきれなかった際に表示されるメッセージです。

あくまで「セッションログ画面における表示上の問題」であるため、アクションの実行結果には影響しません。

# ブラウザを開く
+open_browser_1:
  action>: OpenBrowser
  url: 'https://docs.autoro.io/actions/browser'
  lang: 'ja-JP'
  timeZone: 'Asia/Tokyo'
  headless: true
  confirm: true
  windowSize: '1920 x 1080'
  useShadowDomSelector: false
  private: false

# ページ内でJavaScriptを実行する
+inject_script_1:
  action>: InjectScript
  browser: +open_browser_1
  code: "document.querySelector(\"html\").outerHTML;\n"
  returnValue: true
  private: false

# テキストファイルを作成
+create_text_file_1:
  action>: CreateTextFile
  text: +inject_script_1
  filename: 'createTextSample.html'
  private: false

# ファイルを保存
+save_file_1:
  action>: SaveFile
  provider: local
  filename: +create_text_file_1
  createPath: false
  private: false
  meta:
    display: null
CreateTextFile テキストファイル .txt HTMLファイル

このページは役に立ちましたか?