인공지능의 도움을 받은 간단 파이썬 코딩
이 글은 저의 경우처럼, 내가 쓴 글을 백업 또는 게시용으로 스크래핑(Scraping)하는 방법론을 다룹니다. 당연히 다른 작가의 글을 이런 방식으로 가져오면 안 됩니다. 명백한 저작권 침해가 됩니다. 그 밖에도 플랫폼 정책 위반 혹은 기술적/법적 문제에 대하여 저자는 책임질 수 없습니다. 모든 작업은 독자분들의 판단 하에 신중히 시행하시고, 타인의 저작권을 존중하는 것을 잊지 말아 주세요.
내가 브런치에 쓴 글들, 백업 용도로 다운로드하여서 저장할 수 있을까? 나의 독립적인 웹사이트에도 기존 브런치 글들을 간편하게 게시할 수 있을까? 홈페이지 만드는 것도 좋지만, 그것을 통해 선보일 알맹이가 있어야 하겠지요. 그리고 앞으로 진행될 이야기를 딱 한 줄로 요약하자면, '코딩은 AI에게 조언을 구하라'로 끝납니다.
너무 무성의하다고요? 음... 제가 아직 산후조리 중이라 조금 힘이 딸리는 것은 맞습니다만, 무성의한 것은 절대 아닙니다. 저 같은 아마추어가 어설프게 장광설을 늘어놓는 것보다, AI가 개인별 맞춤형 가이드라인을 더 잘 제시합니다. 작가가 웹사이트를 만들어야 할 타당한 '이유'를 설득하는 것이 지금까지의 저의 역할이었다면, 기술적/구체적 제안은 생성형 인공지능이 훨씬 더 잘합니다. 아무 AI나 켜서 이렇게 입력해 보세요.
내가 쓴 글을 brunch.co.kr이라는 플랫폼에 업로드했어. 이제 이 글을 백업 용도로 컴퓨터에 다운로드하고 싶어. 파이썬 같은 코딩을 활용하면 된다고 들었는데, 나는 프로그래밍에 문외한이라 아무런 사전 지식이 없어. 무엇부터 준비해야 하는지 완전한 초보 기준으로 단계별로 쉽게 알려줘.
대동소이한 이런 답변이 나올 겁니다. 그러니 '완전한 초보 기준' 혹은 '기본적 사용법을 알고 있어' 등으로 본인 상황에 알맞은 가이드라인을 요구하면, 인공지능이 잘 해냅니다. AI 답변 중 이해되지 않는 부분이 있으면, 더 자세히 설명해 달라고 하면 되지요. 예, 참 쉽죠? 이제 이런 식으로 한 단계씩 나가면 되겠... 습니다만, 현실은 그렇게까지 매끄럽진 않아요. AI에게도 광범위하고 두루뭉술한 과제를 주면 버벅거립니다. 당연히 오류가 나거나 스크립트가 제대로 동작하지 않는 경우도 있지요. 이제 몇 가지 개념을 숙지하고, 약간의 요령을 발휘해서 AI의 도움을 효율적으로 끌어내보도록 합시다.
물론 그러려면 웹페이지의 구조와 스크래핑에 대해서는 이해를 하고 있는 것이 좋습니다. 직장에서도 그렇잖아요. 일이 처리되는 구조를 파악하는 상사가 일을 더 잘 시키지요. 밑도 끝도 없이 하라고 닦달만 하면 조직원들은 능률이 떨어집니다. 다행인 것은, 웹페이지에 대한 깊은 이해나 프로그래밍에 대한 많은 지식이 결코 필요 없다는 것이지요. 현재 우리의 도전 과제인 '내 글 스크래핑'은 구조가 단순하고, 평이한 코딩이라 가능한 일입니다. 저 같은 아마추어들은, 지금부터 설명할 딱 요정도만 이해해도 충분합니다.
웹페이지에서 표현된 많은 정보 중에서 우리가 원하는 일부분을 긁어모으는 기술을 스크래핑이라고 합니다. 이를테면 현재 브런치북의 목록에서 뭔가 스크래핑을 해볼까요. 아무렇게나 모아 오기만 한다면 정보로서 가치가 없겠지요. 프로그래밍을 통해 우리가 원하는 특정 구조를 추출해야 합니다. 우리가 볼 수 있는 웹사이트는 HTML이라는 구조화된 언어로 표현되어 있기에, 이 점을 이용하여 특정 부분만 추출할 수 있지요.
이를테면 글 목록에서도 '제목만' 긁어온다든지, '썸네일만' 긁어오는 것을 코딩으로 자동화할 수 있습니다. HTML이나 파이썬을 전부 이해하지는 못해도, 실제 프로그래밍은 AI의 보조를 받으면 됩니다. AI가 제안한 스크립트를 실행해서, 스크래핑된 정보를 저장하면 백업이 되는 것이고, 별도 웹사이트에 게시하면 복사가 되는 것입니다. 단, 이 과정을 한 번에 해치우려고 하지 말고 단계별로 쪼개서 지시하는 것이 유리합니다.
저는 첫 번째 단계로 AI에게 저의 브런치북 웹페이지를 제시한 다음, 이 브런치북에 수록된 글의 총 개수와 용량을 파악하는 스크립트를 만들어 달라고 했습니다. 스크래핑할 대상을 누락 없이 확정할 수 있는지 시험해 본 것이지요. 그리고 각 글에 접속하여 제목과 본문을 가져오는 코드를 짜도록 지시했습니다. 다음으로 이렇게 조합된 정보(제목/본문/이미지 등)를 컴퓨터에 저장하도록 자동화했습니다. 이제 제 브런치 글은 안전하게 백업되었습니다. 마지막으로 수집한 글을 자동으로 워드프레스 웹사이트에 업로드하도록 코딩했습니다. 혹시 모를 오류의 가능성 때문에 다수의 글을 한꺼번에 스크래핑하지는 않았습니다. 각각의 브런치북 단위로 쪼개서 시도했지요.
만약 이 과정에서 필요한 프로그래밍을 인간 도우미에게 시킨다고 생각해 볼까요? "지금 주소를 불러줄 테니까 내 브런치북 웹페이지에 들어가 봐. 들어갔니? 여기 보면 지금 글 목록이 있잖아. 총 11개의 연재글이 있어. 맞지? 목록에서 제목 클릭하면 글에 들어가지거든? 그럼 11개 모든 글의 제목이랑 본문을 복사하는 거야. 그리고 각각을 별도의 파일로 저장해 놔." 이런 식이 될 겁니다. 프로그래밍을 몰라도, 이렇게 사람에게 말하듯이 자유롭게 원하는 방식의 스크래핑을 표현하면 AI가 파이썬 코딩으로 '번역'을 해줍니다.
단, 웹페이지의 특정 부분을 뭐라고 부를지 알아야 원활하게 스크래핑할 수 있습니다. 지금 필요한 것은 글의 제목과 본문이니까 워낙 명백해서 AI도 헷갈리지 않겠지요. 하지만 포스팅 최상단의 커버 이미지 같은 것은 뭐라고 불러야 컴퓨터가 정확하게 이해할까요? 혹시 썸네일 이미지나 본문 내 이미지랑 헷갈리지 않을까요? 웹페이지를 구성하는 모든 부분은 크롬 개발자 도구로 확실한 '이름'을 알아낼 수 있습니다. 이런 방식으로 AI와 원활하게 말이 통하는 것이지요. 자, 글이 길어져 다음 편에서 이어집니다.