박승현
박승현
🏅 AI 마스터
🔬 임팩트 찐친
🎨 미드저니 찐친

약물 중독 치료 정보 사이트를 n8n을 활용해서 크롤링 하고 번역해서 웹페이지에 게시하기

소개

요즘 약물 중독 문제가 심각하다고 합니다. 저도 이 분야의 일을 하고 있고 늘 뭔가 새로운 돌파구가 없을까 고민 하고 있습니다. 약물 중독은 특히 미국에서 문제가 심각하고 그런 만큼 새로운 치료법에 대한 연구도 미국이 가장 활발합니다. 그 중 이런 사이트가 있습니다. https://attcnetwork.org/

사이트의 목적은 중독 문제가 심각하니 새로운 치료법을 빠르게 전파하기 위해 만들어진 곳이고 org니까 정부기관입니다. 교육 영상 뿐만 아니라 그 영상의 발표 프레젠테이션까지 모두 공유되서 정말 공부해서 직접 현장에서 쓸 수 있도록 해주는 곳이라 오래전부터 이런 좋은 사이트가 있습니다 하고 강연할 일이 있을 때 마다 알리고 다녔는데요.

제품 및 리소스 카탈로그의 스크린 샷

모든 자료는 영문이라는 문제가 있습니다. 물론 그냥 사이트를 한글 번역해서 보면 그만입니다만...어쨌든 이런 사소한 장벽이 현장에서 바쁘게 일하는 분들에게는 접근을 어렵게 하는 요인이 됩니다. 사실 저도 한번 훑어보기만 하고 제대로 활용해 본 적은 없기도 하고요.

그래서 이번 기회에 n8n을 활용해서

  1. 사이트에 올라온 정보들을 크롤링하고

  2. 한글로 번역하고 내용 요약도 한 다음

  3. 정리한 자료를 정리해서 웹에 게시하고

  4. 직접 활용하거나 앞으로 자리가 있을 때 홍보해보자.

진행 방법

  1. 일단 생각한 것은 이미 등록된 자료를 모두 크롤링 하고

  2. 작업이 완료되면 그 이후에는 된다면 RSS feed node를 활용해서 새로운 정보의 업데이트를 자동화하기

이렇게 2단계로 나누었습니다. 아마 이번 주에 모두 완료는 어려울 것 같네요.

저는 ChatGPT를 플러스 요금제로 쓰고 있어 일단 그걸로 진행했습니다.

파키스탄 뉴스 웹 사이트의 스크린 샷

일단 첫 고민은 이렇게 한 페이지에 대략 24개 정도의 article이 있고 그런 페이지가 46페이지 입니다. 자료의 분량이 굉장히 많고

건강 관리의 문화적 겸손과 반응성

Type, Target Audience, Keyword 처럼 각 article의 좀 더 세부적인 내용도 게시할 때 포함하고 싶었습니다.

그러면 진행은

[Set 노드: page=1 시작]
         ↓
[HTTP Request: 목록 페이지 요청 (page=1)]
         ↓
[HTML Extract: 자료별 제목과 링크 추출]
         ↓
[HTTP Request: 각 자료 상세 페이지 개별 요청] ←───┐
         ↓                                          │(다음 자료 반복 처리)
[HTML Extract: 각 자료 상세 내용 추출]───────────┘
         ↓
[OpenAI 번역 및 요약]
         ↓
[Notion 자동 게시]

페이지가 끝나면 page 값을 증가하여 다시 위로 이동 (page+=1, 총 46페이지까지 반복)

저는 HTML문법이라던지 이런 배경지식은 전혀 없어서요. CSS selector도 좀 많이 어렵긴 했습니다.

웹 브라우저에서 HTML 코드의 스크린 샷

여기서 공통셀렉터를 찾아야 반복 작업으로 다른 페이지를 열었을때도 적용이 된다는데 잘 모르겠더라구요.

한국 웹 사이트의 스크린 샷

그래서 그냥 찾아달라고 했더니 잘 찾아줬습니다.

한국 웹 사이트의 스크린 샷

막 뭐라 설명하는데 이해가 안가서 고생하기도 하고...

웹 응용 프로그램 생성 과정을 보여주는 다이어그램

아직 한 페이지만 테스트해보고 있는데 페이지 내에 article이 24개니까 테스트 할 때마다 24페이지에 요청을 해서 시간이 좀 걸리더라구요.

프로세스의 흐름을 보여주는 다이어그램

그래서 중간에 자르고 한페이지에 대해서만 실행하도록 일단 변경하고 짜고 있습니다.

게임의 흐름을 보여주는 다이어그램

아직 덜 만들었습니다. 오늘 발표전까지 시간 되면 만들어볼 생각이구요.

제일 뒷쪽에 이상한 문어발은...제목, 본문 내용, 키워드, 목표 청중에 대해 챗지피티가 따로따로 번역 노드를 만들어야 한다고 해서요. 이거 뭔가 이상하고 예쁘지도 않은데? 싶지만 일단 시도하고 있습니다. 있다가 발표 때 조언 부탁드립니다.

현재 생각하는 최종 목표는 한글 번역 작업까지 완료한 다음, 구글 시트에 내용을 옮기고 그 구글 시트를 게시할 방법을 찾아보고 있습니다. 어떤 방식으로 게시하는게 좋을지도 고민해 봐야할 것 같네요.

결과와 배운 점

어려운데 결과가 나오면 뿌듯할 것 같습니다.

1

👉 이 게시글도 읽어보세요