wget

HTTP 통신으로 웹 리소스를 받아오거나, 수신한 결과를 line 필드에, 서버의 HTTP 코드는 _wget_code 필드에 출력합니다.

문법

wget [auth="ID:PASSWD"] [body=FIELD] [encoding=CHARSET] [format={form|json|xml}] [header=FIELD_MAP_TYPE] [method={delete|get|post|put}] [selector="CSS_SELECTOR"] [timeout=NUM] [url="SITE_URL"]
auth="ID:PASSWD"

HTTP 기본 인증에 필요한 정보를 지정합니다.

body=FIELD

HTML 본문으로 사용할 필드를 지정합니다. method=post, method=put과 함께 사용합니다.

encoding=CHARSET

문자열 인코딩 형식(기본값: utf-8). 다음 문서에 등록된 Preferred MIME Name이나 Aliases를 사용합니다: https://www.iana.org/assignments/character-sets/character-sets.xhtml

format={form|json|xml}

전송 포맷을 form, json, xml 중에서 선택할 수 있습니다. REST API 통신을 할 때 사용합니다(기본값: form).

header=FIELD_MAP_TYPE

HTTP 헤더로 사용 키-값으로 구성된 맵 타입 필드를 지정합니다. key, value 모두 문자열 타입인 값만 전송합니다. dict() 함수를 이용해 키-값 맵을 지정할 수도 있습니다:

method={delete|get|post|put}

HTTP 메서드를 지정합니다(기본값: get).

post 메서드는 다음과 같은 특징이 있습니다.

  • 입력 레코드의 키-값을 x-www-form-urlencoded 형식으로 URL 인코딩하여 전송합니다.
  • url 옵션과 함께 사용할 수 없으므로 header 옵션을 이용해 HTTP 헤더를 직접 입력합니다.
selector="CSS_SELECTOR"

CSS의 selector와 동일한 문법으로 HTML DOM 트리에서 선택할 요소를 지정합니다.

timeout=NUM

HTTP 연결 타임아웃 시간을 초 단위로 지정합니다(기본값: 30초).

url="SITE_URL"

연결할 웹 서비스 URL을 입력합니다. 지정된 웹 주소로 요청을 전송하고 응답을 수신합니다.

사용 예

  1. RSS 피드 제목 조회

    wget url="https://logpresso.com/feed/" selector="item title" 
    | explode elements 
    | eval title = valueof(elements, "own_text") 
    | fields title
    
  2. AbuseIPDB에서 IP 주소 평판 조회

     json "{}"
    | eval ip = "118.25.6.39"
    | eval headers = dict("Key", "YOUR_API_KEY", "Accept", "application/json")
    | eval url = concat("https://api.abuseipdb.com/api/v2/check?ipAddress=", ip, "&maxAgeInDays=90")
    | wget method=get header=headers
    | parsejson
    | parsemap field=data
    
  3. AbuseIPDB에 악성 IP 주소 신고

     json "{}"
    | eval ip = "47.236.18.74", categories=14, comment = "Port scanning (count: 2790)"
    | eval headers = dict("Key", "YOUR_API_KEY", "Accept", "application/json")
    | eval url = concat("https://api.abuseipdb.com/api/v2/report")
    | wget method=post header=headers