메뉴 닫기

IT 개발에 관심 있지만 잘 모르는 사람들을 위한 “ChatGPT를 활용한 python 크롤링”

ChatGPT라는 최고의 Tool를 활용해 IT 개발에 관심있는 비전공자 , IT 업계에 관심이 많은 사람들을 위한 글을 작성하고 있습니다.

(이전 글 : http://mukgee.com/?p=831)

 

이번에는 개발 요청 플렛폼 크몽에서 가장 많이 요청 되는 IT 작업 중 하나인 크롤링 작업을 CahtGPT 를 사용해 개발해보려고 합니다.

 

기본적으로 python 실행 환경이 필요한데요.

가장 간단하게 시작할 수 있는 환경으로 구글에서 제공하는 colab을 추천합니다.

 

  1. https://colab.research.google.com  에 접속하셔서 구글 로그인을 합니다.
  2. 상단의 파일 > 새노트를 클릭해서 새노트를 만듭니다.

 

그럼 python 이 실행 가능한 아래와 같은 화면을 만날 수 있습니다.

표시된 빨간 박스의 영역에 코드를 입력하고 왼쪽 화살표를 클릭하시면 python 코드가 실행됩니다.

 

기본적인 python 실행환경이 준비되었으면 이제 본격적으로 ChatGPT와 같이 시작하겠습니다.

웹 크롤링(crawling) 에 필요한 작업들을 ChatGPT 에게 한번 물어보죠.

 

7개의 프로세스로 구분했는데요.  너무 디테일하네요. 3개의 프로세스로 줄여달라고 합시다.

 

 

우리는 3개의 step만 잘 이해한다면 ChatGPT를 사용해 웹 크롤러를 개발할 수 있기 때문에 3개의 step을 이해하기 위해 조금 기본적인 개념을 이야기해보겠습니다.

 

기본적으로 웹 페이지는 HTML 태그들로 구성된 파일입니다.

우리가 사용하는 브라우져는 웹 페이지들이 가지고 있는 HTML 태그를 읽어서 우리가 이해할 수 있는 형태로 보여줍니다.

 

예를 들어보겠습니다.

http://mukgee.com/?p=873 를 브라우져의 주소창에 입력하면 이렇게 생긴 HTML 태그를 포함한 파일을 받게 됩니다.

그리고 이 파일의 태그들을 분석해서 브라우져는 현재 페이지처럼 사람이 이해할 수 있는 페이지로 만들어내죠.

 

그럼 우리가 만들어야하는 크롤러는 브라우져가 하는 일을 대신해서 HTML 이 포함된 파일을 받고 그 파일 속에서 우리가 원하는 data를 가진 태그를 찾아서 그 data를 추출하는 프로그램입니다.

 

개발에 관심은 있지만 경험이 많지 않으신분들은 무슨 이야기인지 이해하기 어려울 수 있습니다.

HTML과 CSS 에 대한 기본 지식이 있으면 좀 더 잘 이해하실 수 있지만 없으셔도 ChatGPT 를 믿고 한번 진행해보겠습니다.

 

    1. 크롤링 목표 페이지

우리는 오늘 삼성전자의 주가 정보를 크롤링하는 크롤러를 만들어 보려고 합니다.
삼성전자 주가는 네이버 증권 페이지(아래 링크) 에서 확인 가능하기 때문에 아래 링크를 크롤링 목표 페이지로 정하겠습니다.
https://finance.naver.com/item/main.nhn?code=005930

 

 

    2. 데이터 추출을 위한 python 코드 작성/데이터 추출

먼저 chatGPT가 제안했던 beautifulSoup 를 사용한 샘플코드를 한번 요청해보겠습니다.

 

simple 한 sample 코드를 요청했더니 이렇게 코드를 주네요.

그럼 전체를 복사해서 url 부분만 우리가 목표하는 url로 변경한 합니다.

그리고 준비해둔 colab 의 코드 실행 부분에 그대로 붙여넣기 후 실행(왼쪽의 화살표 아이콘) 해보겠습니다.

 

아쉽지만 알수 없는 에러가 발생했습니다.

첫 술에 배부를수는 없기 때문에 좌절하지 말고 다른 방법을 찾아보겠습니다.

 

에러가 발생하는 원인은 목표 페이지가 가지고 있는 정확한 HTML 태그를 ChatGPT는 알지 못하기 때문입니다.

그럼 정확한 HTML 태그를 ChatGPT 에게 먼저 알려주고 다시 한번 물어보는것도 좋을것 같습니다.

 

https://finance.naver.com/item/main.nhn?code=005930 에서 우리가 궁금한 구글의 주가에 마우스를 올리고 오른쪽 마우스를 클릭합니다.

그리고 검사라는 버튼을 클릭합니다.

 

그럼 주가를 표시하고 있는 HTML 태그가 표시되는데요.

이때 today 라는 곳을 찾아서 클릭 후 오른쪽 마우스 > copy > Copy Element 를 클릭해줍니다.

오늘 가격의 내용을 복사한다 정도로 이해하시면 될것 같습니다.

(이 과정이 조금 헷갈릴 수 있습니다. 크롬의 검사 모드를 몇번 사용하시다보면 천천히 익숙해질 수 있습니다)

 

무엇을 하고 있는건지, 뭘 복사하는건지 잘 몰라도 일단 복사된 내용을 chatGPT 에게 알려주겠습니다.

 

그리고 ChatGPT에게 price 정보를 가지고 오는 python 코드를 다시 물어봅니다.

어떻게 물어보셔도 상관은 없지만 아래처럼 지금 목표로 하는 HTML 코드를 정확히 알려줍니다.

 

그럼 아래와 같이 ChatGPT 가 수정된 코드를 전달해주는데요.

 

-. python 코드

 

이 코드를 복사해서 다시한번 colab으로 이동해서 그대로 실행해보겠습니다.

 

하단에 보이시나요!

2023.03.31 기준 삼성전자의 현재가격 64,000원이 정확히 표시됩니다.

 

뭘하고 있는지 정확히 모르시는 분들도 순서대로 잘 따라오셨다면 삼성전자의 가격을 크롤링하는 크롤러 만들기에 성공하셨습니다.

ChatGPT 와 같이 만든 코드는 삼성전자 가격이 궁금할때마다 colab의 코드를 실행하면 크롤러가 동작해서 삼성전자 가격을 알려주는 python 프로그램입니다.

 

사실 우리의 목표는 삼성전자의 오늘 가격이었는데 이 내용은 ChatGPT 에게 이야기하지 않았습니다.

하지만 제공된 HTML 코드만 보고 우리가 현재 가격을 알고 싶어한다는 사실을 추론하여 최종 코드까지 완성해서 제공해주었습니다.

 

 

HTML 이나 Python 을 모르시는 분들 이해하는게 어려울 수 있습니다.

하지만, “파이썬으로 웹 크롤러 만들기” 라는 책은 356 page 로 구성되어 있습니다.

물론 구현된 웹 크롤러의 수준차이는 존재하겠지만 ChatGPT에게 잘 물어 볼 수만 있다면, 짧은 시간 안에 크롤러를 완성하는게 가능합니다.

 

처음 이 시리즈를 시작하면서 ChatGPT는 개발에 대한 진입장벽을 낮추고 누구나 개발자가 될 수 있는 환경을 만들어 준다고 이야기했습니다.

크몽으로 요청했던 크롤러 작업은 이제 조금만 공부해본다면 직접 구현할 수 있는 환경이 되었습니다.

 

다음 시간에는 ChatGPT와 함께 간단한 웹서버를 구현해보겠습니다.