소개
작업을 시작한 이유는, 네이버 블로그에서 유용한 정보를 자동으로 크롤링하고, 이를 챗GPT로 요약하여 SNS에 자동으로 게시하는 시스템을 만들고자 했기 때문입니다. 이 과정에서 n8n을 활용하여 효율적으로 워크플로우를 자동화하고, 페이스북과 인스타그램에 게시 하는 기능을 구현하려고 했습니다. 목표는 시간과 노력을 절약하면서도 유용한 콘텐츠를 지속적으로 제공할 수 있는 시스템을 만드는 것이었습니다.
진행 방법
사용 도구 및 기술:
n8n:
제미나이 GEM을 사용하여 n8n에서 크롤링 작업을 자동화했습니다. 이 툴은 반복적인 작업을 효율적으로 처리할 수 있어 매우 유용했습니다.
크롤링: 처음에는 네이버 블로그를 동적 크롤링하려고 했습니다. 하지만 동적 웹 페이지는 복잡하고 자주 업데이트되는 콘텐츠가 많아 크롤링이 어려웠습니다. 그래서 정적 크롤링 방식으로 전환했습니다.
챗GPT:
자동 요약을 위해 챗GPT 프롬프트를 사용했습니다. 네이버 블로그에서 얻은 텍스트 데이터를 챗GPT에 전달하고, 요약본을 받아서 SNS에 맞게 최적화했습니다.
페이스북 개발자 API:
페이스북에 자동으로 게시하기 위해 페이스북 API를 사용했습니다. API 키와 액세스 토큰을 활용해 게시물을 자동으로 업로드하려고 했지만, 액세스 토큰을 업데이트하는 과정에서 '상세 정보 업데이트 중'이라는 오류가 발생하여 잠시 멈추게 되었습니다.
인스타그램:
인스타그램 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에 대한 자동화 및 통계 분석 기능을 추가할 계획입니다.
도움 받은 글
n8n 공식 문서
페이스북 개발자 API 문서