# 액션스크립트

## 액션스크립트란?

액션스크립트는 단순히 보이는 화면을 추출하는 것을 넘어, **사용자가 직접 자바스크립트(JavaScript) 코드를 작성해 추출 과정을 제어할 수 있는 고급 기능**입니다.

<figure><img src="https://content.gitbook.com/content/iKxoYELFf9WS8XCvYe6S/blobs/FS0dD5EjEl5ZGAkMvED5/actionscript-1.png" alt=""><figcaption></figcaption></figure>

예시)

* 특정 버튼을 클릭한 후 나타나는 섹션 안의 데이터 추출
* 마우스오버 했을 때 나타나는 영역 안의 데이터 추출
* 기타 사이트 내에서 동적으로 변하는 요소들을 제어한 후 데이터 수집

위와 같이 일반적인 리스틀리 자동화 설정으로는 해결하기 어려운 **특수한 상황의 데이터 추출을 커스터마이징**할 수 있습니다.

{% hint style="warning" %}
액션 스크립트 작성 서비스는 **엔터프라이즈 플랜 전용 옵션 상품**입니다. 하위 플랜을 이용 중이라면, 직접 스크립트를 작성해 기능을 활용하실 수 있습니다.
{% endhint %}

***

## 사용방법

{% stepper %}
{% step %}

### 웹페이지를 **\[전체 추출]**&#xD55C; 후, 결과 페이지의 \[Browser Setting] 구간을 클릭해 해당 태스크의 설정 화면으로 이동합니다.

<figure><img src="https://content.gitbook.com/content/iKxoYELFf9WS8XCvYe6S/blobs/BesWSAHZPlJZKPQu8it7/actionscript-2.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### 설정 화면의 액션스크립트 란에 작성한 JS코드를 붙여넣고 **\[저장]** 버튼을 클릭합니다.

{% hint style="success" %}
**TIP** 요즘은 Chat GPT 같은 AI 서비스로 간단한 스크립트를 작성해볼 수도 있습니다. 리스틀리 팀이 실제로 챗GPT를 활용해 액션스크립트를 생성해본 경험을 뉴스레터로 공유했으니, 참고해보세요. \
👉[ 액션스크립트, 챗GPT에게 대신 작성해달라고 해봤더니 “이게 되네?”](https://maily.so/listly.io/posts/knrje7v0zld)
{% endhint %}

<figure><img src="https://content.gitbook.com/content/iKxoYELFf9WS8XCvYe6S/blobs/1UociqEJYw0oqeVHZVPg/actionscript-3.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### 결과창 혹은 데이터보드의 **\[재추출]** 버튼을 클릭하여 액션스크립트를 통한 데이터 영역을 재추출합니다.

<figure><img src="https://content.gitbook.com/content/iKxoYELFf9WS8XCvYe6S/blobs/AqjxHCnBTtwMQO8TDsB4/actionscript-4.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### 재추출이 완료된 후 결과를 확인합니다. 설정한 액션스크립트가 의도대로 동작했는지 반드시 검증하세요.

<figure><img src="https://content.gitbook.com/content/iKxoYELFf9WS8XCvYe6S/blobs/n0X9bY1qVEG1ZgfsbM4l/actionscript-5.png" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## 주의사항

{% hint style="warning" %}

#### 그룹추출 태스크에 액션스크립트 적용시 주의사항

액션스크립트는 반드시 그룹추출 전 소스 페이지에서 먼저 적용해주셔야 합니다. 그룹추출은 대표 페이지(소스 페이지)를 기준으로 다른 URL들을 같은 구조라고 가정하고 데이터를 수집합니다. 만약 소스 페이지에 액션스크립트를 적용하지 않으면, 이후에 추가된 URL들에서는 동일한 동작을 수행할 기준이 없어져 **탭 매칭 오류**나 **데이터 누락**이 발생할 수 있습니다.

* 반드시 **대표 페이지**를 연 상태에서 액션스크립트를 작성하고 적용하세요.
* 액션스크립트를 적용한 후에는 **재추출**을 실행하여 해당 설정이 정상적으로 작동하는지 먼저 확인해야 합니다.
* 이후 **\[+그룹]** 버튼을 통해 URL을 추가하면, 모든 그룹 페이지에 동일한 액션스크립트 동작이 반영됩니다.
* 만약 소스 페이지와 다른 페이지 간의 구조 차이가 크다면, 스크립트가 정상적으로 작동하지 않을 수 있으니 **같은 구조의 페이지**만 그룹추출에 포함시키는 것이 중요합니다.
  {% endhint %}
