n8n을 활용한 네이버 블로그 크롤링 및 자동 요약, SNS 자동 게시하기

소개

작업을 시작한 이유는, 네이버 블로그에서 유용한 정보를 자동으로 크롤링하고, 이를 챗GPT로 요약하여 SNS에 자동으로 게시하는 시스템을 만들고자 했기 때문입니다. 이 과정에서 n8n을 활용하여 효율적으로 워크플로우를 자동화하고, 페이스북인스타그램에 게시하는 기능을 구현하려고 했습니다. 목표는 시간과 노력을 절약하면서도 유용한 콘텐츠를 지속적으로 제공할 수 있는 시스템을 만드는 것이었습니다.

진행 방법

사용 도구 및 기술:

  1. n8n:

    • 제미나이 GEM을 사용하여 n8n에서 크롤링 작업을 자동화했습니다. 이 툴은 반복적인 작업을 효율적으로 처리할 수 있어 매우 유용했습니다.

    • 크롤링: 처음에는 네이버 블로그를 동적 크롤링하려고 했습니다. 하지만 동적 웹 페이지는 복잡하고 자주 업데이트되는 콘텐츠가 많아 크롤링이 어려웠습니다. 그래서 정적 크롤링 방식으로 전환했습니다.

  2. 챗GPT:

    • 자동 요약을 위해 챗GPT 프롬프트를 사용했습니다. 네이버 블로그에서 얻은 텍스트 데이터를 챗GPT에 전달하고, 요약본을 받아서 SNS에 맞게 최적화했습니다.

  3. 페이스북 개발자 API:

    • 페이스북에 자동으로 게시하기 위해 페이스북 API를 사용했습니다. API 키와 액세스 토큰을 활용해 게시물을 자동으로 업로드하려고 했지만, 액세스 토큰을 업데이트하는 과정에서 '상세 정보 업데이트 중'이라는 오류가 발생하여 잠시 멈추게 되었습니다.

  4. 인스타그램:

    • 인스타그램 API는 페이스북과 유사하게 동작하지만, 추가적인 인증 절차와 게시물 크기 제한이 있어 이를 처리하는 데 어려움이 있었습니다.

문제와 해결 과정:

  • 동적 크롤링의 어려움: 네이버 블로그의 동적 콘텐츠를 크롤링하는 것은 생각보다 훨씬 복잡하고 시간이 많이 걸렸습니다. 그래서 정적 페이지만 크롤링하는 방식으로 변경했는데, 이는 시간이 더 적게 걸리고 안정적인 방법이었습니다.

  • 페이스북 API 오류: 페이스북 액세스 토큰을 업데이트하는 과정에서 오류가 발생했으나, 이를 해결하려면 API 문서를 다시 읽고 디버깅하는 과정이 필요했어요. 결국 액세스 토큰이 제대로 작동할 때까지 시간이 조금 걸렸습니다.

    프로세스의 다른 단계를 보여주는 다이어그램

샘플 코드 및 프롬프트:

  • n8n에서 크롤링:

javascript

복사편집

{ "nodes": [ { "parameters": { "url": "https://blog.naver.com/yourblogurl" }, "name": "네이버 블로그 크롤러", "type": "n8n-nodes-base.httpRequest" }, { "parameters": { "input": "크롤링한 블로그 텍스트", "prompt": "이 내용을 150자 이하로 요약해 주세요.", "model": "gpt-3.5" }, "name": "챗GPT 요약", "type": "n8n-nodes-base.openai" } ] }

  • 페이스북 API에 게시:

javascript

복사편집

{ "url": "https://graph.facebook.com/v12.0/{page-id}/feed", "method": "POST", "params": { "message": "요약된 블로그 내용", "access_token": "your-access-token" } }

결과와 배운 점

배운 점:

  • 동적 크롤링 vs. 정적 크롤링: 동적 웹사이트의 크롤링은 매우 어렵고 많은 자원을 소모합니다. 정적 웹페이지에서 데이터를 크롤링하는 것이 훨씬 효율적이라는 점을 깨달았습니다. 또한, 대용량 데이터를 크롤링하려면 파이썬VS 코드를 사용하는 것이 더 효과적일 수 있다는 점도 배웠습니다.

  • API 연동의 중요성: 페이스북과 인스타그램 API를 연동하는 과정에서 발생한 오류를 처리하면서 API 문서를 꼼꼼히 읽고, 각 인증 절차와 제한사항을 정확히 이해해야 한다는 점을 배웠습니다.

앞으

한국 웹 사이트의 스크린 샷

로의 계획:

  • 대용량 크롤링: 정적 페이지를 활용한 대규모 크롤링 작업은 n8n보다는 파이썬을 이용하는 게 더 효율적일 것 같습니다. 이를 통해 더 많은 데이터를 빠르게 처리하고, 이후 데이터 분석에 활용할 계획입니다.

  • n8n 활용: n8n을 더 깊이 배우고, 다양한 API 연동을 활용해 더 자동화된 시스템을 만들고 싶습니다. 특히, SNS에 대한 자동화 및 통계 분석 기능을 추가할 계획입니다.

도움 받은 글

1
1개의 답글

👉 이 게시글도 읽어보세요