1. 코딩 없이 n8n으로 네이버 뉴스 검색 텔레그램 봇 만들기 [0]

thumbnail 무료 자동화 도구인 n8n을 활용하여 코딩 없이 네이버 뉴스 검색 텔레그램 봇을 만드는 방법을 설명한다. [0]

1.1. 기존 파이썬 봇과의 비교 [0]

  1. 파이썬으로 구현한 뉴스 검색 봇 시연 [0]
    • 텔레그램 봇을 통해 키워드를 입력받아 네이버 뉴스를 검색하고, 그 결과를 텔레그램으로 전송하는 기능을 보여준다. [5]
    • 검색된 뉴스 제목과 링크를 확인할 수 있으며, 링크를 클릭하면 해당 뉴스 페이지로 이동한다. [11]
  2. n8n을 활용한 봇 제작의 장점 [15]
    • 코딩에 익숙하지 않은 경우 n8n을 활용하면 자유도가 높지는 않지만 편리하게 자동화 봇을 만들 수 있다. [15]

1.2. n8n 워크플로우 기본 설정: 메시지 수신 [17]

  1. 워크플로우 생성 및 'On Message' 모듈 사용 [19]
    • 새로운 워크플로우를 생성하고, 텔레그램 메시지를 받는 'On Message' 모듈을 추가한다. [20]
  2. 'On Message' 모듈 설정 [21]
    • 환영 인사를 설정하고, 'Hosted Chat'으로 선택한 후 인증은 'None'으로 설정한다. [21]
    • 생성된 챗 URL을 통해 텔레그램에서 봇과 채팅할 수 있으며, 사용자가 입력한 메시지는 세션 ID와 함께 워크플로우로 전달된다. [25]
    • 'Active' 상태로 설정하면 서버처럼 작동하며 외부에서 접근 가능하다. [40]

1.3. 네이버 뉴스 검색을 위한 HTTP 요청 설정 [45]

  1. 'HTTP Request' 모듈 추가 및 설정 [45]
    • 'HTTP Request' 모듈을 추가하고, 네이버 뉴스 검색 결과 페이지의 URL을 입력한다. [45]
    • 메소드는 'GET'으로 설정하고, 쿼리 스트링 파라미터를 활성화한다. [50]
  2. 검색어 쿼리 설정 [52]
    • 검색어 입력 필드의 이름(쿼리)을 'query'로 설정하고, 'On Message' 모듈에서 받은 검색어 값을 연결한다. [53]
    • 이 설정을 통해 사용자가 입력한 검색어로 네이버 뉴스 검색을 요청한다. [59]
  3. 웹 페이지 데이터 수신 확인 [59]
    • 실행 결과로 네이버 뉴스 검색 결과의 HTML 데이터를 받아오는 것을 확인한다. [59]

1.4. 웹 스크래핑: 뉴스 데이터 파싱 [63]

  1. 정적 스크래핑의 한계 인지 [63]
    • n8n은 동적 스크래핑을 지원하지 않으므로, 동적인 웹사이트는 파이썬 등 다른 방법을 사용해야 한다. [65]
  2. 'Extract HTML Content' 모듈을 이용한 데이터 추출 [71]
    • 'HTML' 검색 후 'Extract HTML Content' 모듈을 추가하여 HTML 데이터에서 원하는 정보를 추출한다. [71]
    • 뉴스 제목 추출: 뉴스 제목이 포함된 CSS 셀렉터를 복사하여 설정하고, 'Return Array'를 활성화하여 모든 제목을 가져온다. [76]
    • 뉴스 링크 추출: 기사 링크(href 속성)를 포함하는 요소를 선택하고, 'Return Value'를 'Attribute'로 설정한 후 'href' 속성을 지정하여 링크를 추출한다. [87]
    • 뉴스 요약 추출: 뉴스 요약(description)이 포함된 셀렉터를 복사하여 설정하고, 'Description'이라는 키로 저장한다. [97]
    • 추출된 데이터는 제목, URL, 요약 정보로 구성된다. [101]

1.5. 데이터 포맷 변환을 위한 코드 작성 [104]

  1. 'Code' 모듈을 이용한 데이터 가공 [110]
    • 텔레그램 전송을 위해 추출된 데이터를 원하는 형식으로 변환하기 위해 'Code' 모듈을 사용한다. [107]
    • 자바스크립트 코드를 사용하여 입력받은 배열 형태의 데이터를 순회하며 HTML 형식의 메시지 문자열을 생성한다. [117]
  2. 자바스크립트 코드 설명 [118]
    • 입력 데이터(input)에서 첫 번째 객체를 가져와 JSON으로 변환하고, title, description, url 키로 데이터에 접근한다. [119]
    • 백틱(`)과 달러 기호($)를 사용하여 변수를 포함하는 문자열을 동적으로 생성하며, 링크를 위한 HTML 태그를 포함시킨다. [139]
    • 변수 선언 시 const (상수)와 let (변수)을 구분하여 사용한다. [133]
  3. 코드 실행 결과 확인 [147]
    • 코드 실행 결과로 텔레그램 전송에 적합한 HTML 형식의 메시지가 생성된다. [149]

1.6. 텔레그램 메시지 전송 설정 [151]

  1. 'Send Text Message' 모듈 추가 및 설정 [151]
    • 'Telegram' 검색 후 'Send Text Message' 모듈을 추가하고 워크플로우에 연결한다. [151]
    • 봇의 API 키(Access Token)와 채팅 ID를 입력하여 텔레그램 봇을 인증한다. [154]
  2. 메시지 내용 및 파싱 모드 설정 [162]
    • 'Code' 모듈에서 생성된 HTML 형식의 메시지를 'Text' 필드에 연결한다. [162]
    • 'Add Field'에서 'Parse Mode'를 'HTML'로 설정하여 텔레그램에서 HTML 태그를 인식하도록 한다. [168]
    • 설정 후 메시지를 전송하면, 제목에 링크가 포함된 형태로 텔레그램에 표시된다. [171]

1.7. 봇 활성화 및 테스트 [173]

  1. 워크플로우 저장 및 활성화 [173]
    • 완성된 워크플로우를 저장하고 'Active' 상태로 전환한다. [173]
  2. 봇 테스트 [175]
    • 텔레그램 봇에게 검색어를 입력하면, 해당 검색어로 네이버 뉴스를 검색하여 결과를 텔레그램으로 보내주는 것을 확인한다. [175]
    • 이를 통해 채팅 메시지를 통해 뉴스 검색을 수행하는 기본적인 봇 기능을 구현했다. [180]

1.8. 챗봇으로 확장하기 [181]

  1. 기존 워크플로우 복사 및 수정 [187]
    • 만들어진 워크플로우를 복사하여 새로운 워크스페이스에 붙여넣고, 첫 번째 'On Message' 모듈을 삭제한다. [188]
  2. 'On Message' 챗봇 트리거 설정 [191]
    • 'Telegram' 검색 후 'On Message' 노드를 추가하여 챗봇의 메시지 트리거로 설정한다. [191]
    • 이전 'On Message' 모듈과 달리, 'Webhook URL'은 시스템적인 트리거에 사용되며 직접 접속하는 용도가 아니다. [199]
  3. 챗봇 워크플로우 실행 및 테스트 [207]
    • 'On Message' 노드에서 받은 메시지(검색어)를 다음 단계의 'HTTP Request' 모듈에 연결한다. [214]
    • 워크플로우를 실행하고 텔레그램으로 검색어를 보내면, 해당 검색어로 네이버 뉴스를 검색하여 텔레그램으로 결과를 전송한다. [221]
  4. 챗봇 활성화 및 활용 [226]
    • 챗봇을 'Active' 상태로 설정하면, 서버에 배포된 챗봇처럼 작동한다. [227]
    • 텔레그램에서 봇에게 키워드를 입력하면 실시간으로 네이버 뉴스 검색 결과를 받아볼 수 있다. [230]
    • 이는 파이썬으로 챗봇을 개발하고 배포하는 것보다 훨씬 간편하게 뉴스 검색 챗봇을 구현할 수 있음을 보여준다. [229]