노코드 웹 크롤링: Make, ChatGPT, Apify로 업무 생산성 높이기
노코드 웹 크롤링: Make, ChatGPT, Apify로 업무 생산성 높이기
웹에서 필요한 정보를 수집하고 싶지만 코딩 때문에 망설였던 경험, 누구나 있을 것입니다. 하지만 Make(구 Integromat), ChatGPT, Apify와 같은 도구를 활용하면 코딩 없이도 원하는 웹사이트에서 데이터를 크롤링하고 업무 생산성을 향상시킬 수 있습니다. 이 글에서는 Make를 중심으로 다양한 사이트에서 정보를 크롤링하는 방법을 자세히 알아보겠습니다.
목차
- 웹사이트의 종류와 크롤링 이해하기
- 정적 웹사이트
- 동적 웹사이트
- Make를 활용한 정적 웹사이트 크롤링
- arXiv.org에서 논문 정보 크롤링
- ChatGPT를 이용한 데이터 추출 및 정제
- Google Sheets에 데이터 저장
- Make를 활용한 링크 기반 크롤링 및 요약
- TechCrunch에서 AI 뉴스 기사 크롤링 및 요약
- 기사 링크 추출 및 추가 크롤링
- ChatGPT를 이용한 기사 요약 및 정제
- Google Sheets에 데이터 저장
- Apify를 활용한 동적 웹사이트 크롤링
- 크몽에서 AI 자동화 프로그램 정보 크롤링
- Apify 웹 스크레이퍼 설정 및 실행
- Make와 Apify 연동 및 데이터 처리
- ChatGPT를 이용한 데이터 추출 및 정제
- Google Sheets에 데이터 저장
- 요약 및 추가 정보
1. 웹사이트의 종류와 크롤링 이해하기
웹사이트는 크게 정적 웹사이트와 동적 웹사이트로 나뉩니다.
정적 웹사이트
모든 HTML 정보가 웹 브라우저에 한 번에 출력됩니다. 회사 소개 페이지나 블로그처럼 간단한 구조를 가진 사이트가 주로 해당되며, HTML 소스만으로 원하는 데이터 추출이 가능하여 크롤링이 상대적으로 간단합니다.
동적 웹사이트
초기 로딩 시 기본적인 HTML 구조만 출력되고, 이후 API 요청이나 자바스크립트를 통해 추가 정보가 업데이트됩니다. React, Vue, Angular와 같은 프레임워크를 사용하는 대규모 서비스에서 주로 사용되며, 크롤링이 다소 복잡합니다.
2. Make를 활용한 정적 웹사이트 크롤링
arXiv.org에서 AI 관련 논문 정보(제목, 저자, 링크)를 크롤링하는 예시를 살펴보겠습니다.
arXiv.org에서 논문 정보 크롤링
- Make 시나리오 생성 및 HTTP 모듈 추가: Get a request 액션으로 arXiv.org의 URL을 입력하고 GET 메서드를 사용합니다.
- HTML to Text 변환: HTML to text 모듈을 사용하여 HTML 코드를 텍스트로 변환합니다.
ChatGPT를 이용한 데이터 추출 및 정제
- ChatGPT 모듈 추가: Create a chat completion 액션을 사용하여 ChatGPT와 연동합니다.
- 프롬프트 작성: 제목, 저자, 링크를 추출하고 JSON 형태로 출력하도록 명확한 지시를 포함하는 프롬프트를 작성합니다. 예시와 함께 제공하면 정확도를 높일 수 있습니다.
- 텍스트 데이터 입력: 앞서 추출한 텍스트 데이터를 ChatGPT 모듈에 입력합니다.
Google Sheets에 데이터 저장
- JSON Parse 모듈 추가: 추출된 JSON 데이터를 파싱하여 각 항목을 분리합니다.
- Google Sheets 모듈 추가: Add a row 액션으로 파싱된 데이터를 Google Sheets에 저장합니다.
3. Make를 활용한 링크 기반 크롤링 및 요약
TechCrunch에서 AI 뉴스 기사를 크롤링하고 요약하는 예시를 살펴보겠습니다.
TechCrunch에서 AI 뉴스 기사 크롤링 및 요약
- HTTP 모듈을 사용하여 TechCrunch AI 섹션 페이지의 HTML 코드를 가져옵니다.
- Text Parser 모듈의 Match Pattern 액션과 정규표현식(Regex)을 사용하여 기사 링크를 추출합니다. (Regex 테스트 사이트: regex101.com)
- 추출된 링크를 소문자로 변환: HTTP 요청 시 대소문자 구분 문제를 방지합니다.
기사 링크 추출 및 추가 크롤링
- 각 기사 링크를 이용하여 HTTP 모듈로 기사 페이지에 접속하고 HTML 코드를 가져옵니다.
- HTML to Text 변환 후, 필요한 기사 내용만 추출하기 위해 Set variable 액션과 문자열 함수(split, slice, join)를 활용하여 데이터를 전처리합니다.
ChatGPT를 이용한 기사 요약 및 정제
- ChatGPT 모듈에 전처리된 기사 내용을 입력하고, 제목, 날짜, 요약을 JSON 형태로 출력하도록 프롬프트를 작성합니다.
- JSON Parse 모듈을 사용하여 데이터를 파싱합니다.
Google Sheets에 데이터 저장
- Google Sheets 모듈을 사용하여 파싱된 데이터(날짜, 제목, 요약, 링크)를 Google Sheets에 저장합니다.
- 중복 기사 업데이트 방지: 이미 저장된 링크와 비교하여 중복 업데이트를 방지하는 로직을 추가할 수 있습니다.
4. Apify를 활용한 동적 웹사이트 크롤링
크몽에서 AI 자동화 프로그램 정보를 크롤링하는 예시를 살펴보겠습니다.
크몽에서 AI 자동화 프로그램 정보 크롤링
Make의 HTTP 모듈만으로는 동적 웹사이트 크롤링이 어렵습니다. 따라서 Apify를 활용합니다.
Apify 웹 스크레이퍼 설정 및 실행
- Apify 스토어에서 Web Scraper 액터를 선택하고 실행합니다.
- 크몽 URL을 입력하고, 자바스크립트 실행 후 HTML 코드를 가져오도록 설정을 수정합니다. page.evaluate() 함수를 사용하여 document.querySelector().outerHTML 값을 반환하도록 설정합니다.
Make와 Apify 연동 및 데이터 처리
- Make의 Apify 모듈(Watch actor runs, Get dataset items)을 사용하여 Apify 액터 실행을 감지하고 결과 데이터를 가져옵니다.
- 가져온 데이터를 Text Parser 모듈로 텍스트 형태로 변환합니다.
ChatGPT를 이용한 데이터 추출 및 정제
- 필요한 상품 정보 리스트 부분만 추출하기 위해 문자열 함수를 활용하여 데이터 전처리합니다.
- Iterator 모듈을 사용하여 상품 리스트를 개별 아이템으로 분리합니다.
- ChatGPT 모듈에 각 아이템을 입력하고 상품명, 가격, 별점, 링크를 JSON 형태로 추출하도록 프롬프트를 작성합니다. 별점이 없는 경우를 고려하여 예시를 제공합니다.
- JSON Parse 모듈을 사용하여 데이터를 파싱합니다.
Google Sheets에 데이터 저장
Google Sheets 모듈을 사용하여 파싱된 데이터(업데이트 날짜, 상품명, 가격, 별점, 링크)를 Google Sheets에 저장합니다.
5. 요약 및 추가 정보
이 글에서는 Make, ChatGPT, Apify를 활용하여 정적 및 동적 웹사이트에서 데이터를 크롤링하는 방법을 다루었습니다. 코딩 없이도 웹 크롤링을 자동화하여 업무 생산성을 높일 수 있으며, ChatGPT를 활용하여 데이터 추출 및 정제 작업을 효율적으로 수행할 수 있습니다. 더 나아가, Google Sheets 연동을 통해 데이터 분석 및 활용까지 가능합니다.
추가적으로,
- Make, ChatGPT, Apify 사용법에 대한 자세한 내용은 각 플랫폼의 공식 문서 및 튜토리얼을 참고하세요.
- 정규표현식에 대한 이해는 웹 크롤링 효율을 높이는 데 도움이 됩니다.
- 웹 크롤링 시 robots.txt를 확인하고 웹사이트 이용 약관을 준수해야 합니다. 과도한 크롤링은 웹사이트 서버에 부담을 줄 수 있습니다.
이 글이 웹 크롤링 자동화를 통해 업무 생산성을 향상시키는 데 도움이 되길 바랍니다.