기본 콘텐츠로 건너뛰기

블로그 이사와 웹스크래핑 공부 (1)

코딩, 맛만 봤던 사람으로서 참 험난한 길을 걷고 있다.

티스토리의 만행에 열폭하여 '블로그 이사'를 선언했는데, 그 실현의 길은 어렵기만 하다. 50여건의 글을 수동으로 스크래핑을 해 보았지만 남은 게시물은 여전히 800건 가까이 된다. 학부 때부터 작성해 온 게시물을 네이버 블로그에서 티스토리를 거쳐 쌓아 놓았으니 결코 적지 않은 양이다.

그 중에 '재활용'의 의미가 있는 것이 얼마나 될지는 모르겠지만 지울 건 지우고 옮겨오려 한다. 급한 마음에 문과출신스럽게 접근한다면 '계속' 수동으로 copy & paste(복사/붙이기)를 해야 할 것이다. 한 두 번 해보았다. 15건 정도를 처리하는 데 1시간 정도는 걸렸던 것 같다. 정신 차리고 빠릿빠릿하면 40분 정도가 될지도 모르지만.

수동의 길은 이렇다. 1) 티스토리 로그인, 2) 글관리 도구로 들어가서, 3) 해당 글을 띄운 뒤, 4) 글 수정 모드에서 글과 제목을 copy해서, 5) Word*에 붙여넣기하고, 6) 저장하되 7) 작성 시간과 제목으로 파일명을 부여해서 완료하고, 8) 해당 글을 과거 블로그에서 삭제하는 것으로 글의 백업을 할 수 있다.

.txt를 쓸 수도 있지만 .docx를 쓰려 한 것은 이미지도 함께 copy&paste가 되어 좋으며, 용량도 15kb-500kb 정도로 적기 때문이다. 수동 스크래핑 방법 중 가장 편리한 것은 브라우저에서 pdf로 인쇄하는 것이긴 하다. 그 경우 용량은 2mb 내외가 된다.

새로운 블로그에 글을 재게재하는 것은 또 다른 일이 된다. word 파일에서 긁어다가 붙이는 건 text만 가능하고 이미지는 별도로 업로드 해야 하니. 이런 걸 프로그래밍해서 백업 파일을 만들고, 그 백업 파일을 자동으로 업로드할 수 있다면 좋을 것이다.

그러나 지금으로서는 백업은 자동으로 하고, 업로드는 선별과 수정 작업을 거쳐야 할 것 같다. 쓸만한 옛날 글을 재활용 한다고 할 때 어색한 문장이나 바뀐 생각을 반영해서 고칠 필요가 있다. 그리고 무엇보다 그대로 옮기면 '저품질 문제'가 생긴다. 그러나...


블로그 저품질 이슈

블로그 이사에서 가장 큰 걸림돌 중의 하나가 '검색 포털'이라는 사우론의 눈이 '저품질 블로그'로 낙인 찍는 일이다. 동일한 게시물이 복제된다고 본다면 이런 검색 배제는 훌륭한 시스템이다. copy를 일삼아 창작자의 수고를 탈취하는 일을 막을 수 있기 때문이다. 

그러나 해당 작자가 자기 창작물을 다른 업체로 옮겨 게시하는 경우에도 색인 로봇의 '저품질' 평가에 노출될 수 있는 것이다.

지금 나도 그런 문제를 겪고 있다. 현재 어느 포털에서도 내 블로그 글은 검색되지 않는다. 따라서 트위터나 페이스북에 게재된 링크를 타고 들어오거나 내 블로그를 즐겨찾기 해 놓아 직접 링크를 타고 들어오는 경우로만 접근이 가능하다. 10여 년 이상 사용해 온 'steinsfactory'라는 간판을 고수하다가 생긴 문제인 듯하다.

어느 포털에서든지 'steinsfactory'를 검색하면 티스토리 블로그가 검색된다. 물론 거기에 이 블로그로 올 수 있는 링크를 걸어 놓긴 했지만. 서브 간판인 '인간학공작소'의 경우는 네이버와 구글은 티스토리 블로그를 보여주고 다음은 그마저도 보여주지 않는다.

지금 이 블로그는 2015년엔가 티스토리의 검열을 처음 겪었을 때 만든 것이긴 하다. 'steinfactory'라는 이름으로 만들어 놓았던 것이다. 그때부터 비슷한 이름이 문제가 되지 않았을까 싶다.

과거 게시물을 그대로 재활용하는 것이 저품질 이슈를 발생시킨다고 해서 시간을 두고 옮기려 했지만(사실 기술적 문제로 바로 옮길 수 없는 것이지만), 그렇게 몸을 사린 것과는 별개로 이미 저품질 문제에 빠져 있었던 것이다.

구글이나 네이버 등의 검색 문제 해결을 위해서 이용자가 할 수 있는 범위의 조치(구글 search console이나 네이버 서치어드바이저 활용)는 해 놓았지만 아직 별 변화는 없다. 10월 말까지 별달리 개선이 되지 않는다면 다시 짊을 싸야 할지도 모르겠다.


웹 스크래핑 공부를 시작하다

위기를 기회로 만들기 위한 방편으로 생각한 것이 '코딩 공부'다. 연구자로서 코딩 실력이 필요한 상황이어서 해야지 해야지 생각은 많이 했지만 실제 써먹을 수 있을 만큼 공부해 본 적은 없었다. 부트캠프나 학교에서 제공된 강의를 듣는 정도였다.

R이나 Python을 그런 기회에 컴퓨터에 깔아 놓고 있었지만, 실제 연구에 활용하지는 못했다. 지난 번 논문(19-20세기초 종교 용례 연구) 작업할 때, 그 필요성을 절실히 느끼긴 했다. 1,500여 건의 신문 자료를 검토할 때 정신이 나갈 뻔 했다. 대한민국신문 아카이브에서 '검색 결과 엑셀 내보내기' 기능을 제공해서 그나마 몸으로 때우려는 마음이라도 먹었던 것이다.

블로그 이사를 위해 스크래핑 실력이 현재 절실하니 이 기회로 웹 자료를 자동으로 수집하는 코딩 기술을 습득해보자는 원대한 포부를 세웠다. 그러나 기초가 부족하니 교육 영상이나 기작성 코드들을 이용해서 이것저것 시도해 보는 정도에 그치고 있다.

구글링해서 얻은 스크립트를 기반으로 과거 블로그에서 페이지를 스크래핑 해 보는 시도를 진행 중이다. 필요한 라이브러리가 뭔지도, 어떤 코드가 왜 필요한지도 아직 잘 모르지만, 코드를 돌려보고 결과를 확인해 보면서 수정해 가고 있다.

어제 오늘 혼자 해 본 것은 "yyyy. mm. dd. hh:mm"와 같은 시간 표시를 긁어 와서 "yyyy-mm-dd" 형태로 바꾸어 주는 코드를 짠 것 정도다. 훨씬 간단한 방법이 있겠지만, 최근에 배운 걸 총동원해서 해본 것이다. 마지막 줄에서 text로 바뀐 시간 정보에서 '.(period)'+ 'blank'를 '-(hyphen)'으로 2개까지만 바꿔 주되 뒤에서 7열은 제외하는 식으로 처리했다.

앞으로 떠듬떠듬 해야 할 일은

1. 비공개 상태에서 게시물을 스크래핑하기 위해 로그인 정보를 주고 처리하는 코드 짜기(없으면 게시글 공개 상태에서 스크래핑하기로 목표를 수정할 계획)

2. 작성된 글의 html 코드를 살려서 스크래핑하기

3. 스크랩 시에 불필요한 정보 최소화하기

4. 이미지 등도 살려서 스크래핑하기

5. 누락된 url에서 오류 나지 않게 하기

6. .docx 혹은 .txt로 스크랩된 데이터 저장하기

7. 백업 폴더에 작성글 찾기 쉽게 '날짜+제목'으로 파일 및 폴더 정리하기

이런 목표를 11월까지 처리할 수 있기를 기대하고 있다. 

지금 현재는 공개된 게시물의 날짜와 제목 그리고 본문을 html 코드를 살려서 가져오는 정도다(여기에서 코드 제거하고 text만 추출하는 건 간단하다. get_text() 함수로..). 일부 불필요한 정보를 포함하고 있어서 그마저도 만족스러운 결과물은 아니다.

.   .   .

블로그 이사와 저품질 문제를 극복할 수 있을지 모르겠다.

티스토리의 검열로 촉발된 충동적 블로그 이사가 코딩 실력 향상의 결과로 귀결된다면 뭐 충분히 남는 장사가 되긴 할 것 같다.

역시 공부는 분노의 힘이 최고다.

이걸 요즘 새삼 느끼게 된다. 지루하고 지난한 과정을 감내하며 코드 한 줄 한 줄을 실험하며... 종교 개념사에 대한 후속 연구나 '인터넷 종교성'에 대한 본격적인 연구를 수행할 수 있게 되기를 꿈꾸고 있다.

댓글

이 블로그의 인기 게시물

태백산, 산당, 서낭당 그리고 사람들┃답사 후기

[2017년 6월에 태백산 일대의 답사를 다녀와서 쓴 글입니다. 답사는 6월 3일부터 6월 4일까지. 후기 작성일 2017. 6. 7.] · · · 태백산에 다녀왔다. 천제단, https://www.khan.co.kr/local/Gangwon/article/202204281434001#c2b 난 답사를 싫어한다. 주위 사람들은 다 알고 있다. '왜 가야 하나'에 적절한 답을 가져본 적이 없다. 학부 때는 '학술'을 가장한 MT같은 것이니 어쩔 수 없다 싶었는데, 대학원에 들어와서는 그마저도 관심이 시들해졌다. '학'은 사라지고 '술'을 위해서 가는 것이라면 또 굳이 갈 이유가 있을까 싶기도 했다. (실제 답사가 다 그런 것은 아니다. 내가 답사에서 무언가 발견할 수 없었기 때문에 그렇게 느꼈던 것 같다) 그런데 박사수료 후부터 조금 달라졌다. 이제 '그곳'에 가면 이야기가 보이기 시작한다. 그것도 재미가 있다. 왜 그런가 싶었는데, 역시 수준 높은 연구자들과 함께 가서 그런 것 같다. 혼자 갔다면 도저히 그곳의 이야기, 그곳 사람들의 이야기를 듣지 못했을 터다. ('자기 문제의식'이 명료화 되었다는 점도 중요한 것 같기는 하다) '산악신앙'은 상식적으로는 '원시신앙'으로 학술적으로는 자연신앙 내지는 마을신앙과 관련된 민속신앙으로 이야기된다. 고도의 신학적 이야기, 그래서 인생의 의미를 음미하는 따위의 것이 담겨있지 않다. 그래서 상당히 빈곤하게 이해된다. 그런데 이번에 태백산 답사를 가서, 거기에 '인간'을 들여다 보는 '어떤 창'이 있다는 것을 새삼스럽게 확인하게 되었다. 산은 '신성한 곳'이다 태백산 같이 높은 산, 주변 지역의 '중심'이 되는 산은 특히 그렇다. 그런 산들은 일단 직접적으로 인간에게 '위험'하다. 맹수로부터 목숨을 위협 받을 수 있는 곳이다. 높...

"명상 수련이 뇌와 면역 체계에 급속한 변화를 일으킨다"(논문 이미지 설명)

 신심미약종교학 채널 에서 다뤘던 " Neural and molecular changes during a mind-body reconceptualization, meditation, and open label placebo healing intervention " 논문 리뷰글에 이어서, 해당 논문의 핵심 메시지를 논문의 그림들에 대한 설명을 중심으로 이곳에 정리한다. 논문 소개 Neurosciencenews.com 기사 "마음과 몸의 재개념화, 명상 및 공개 라벨 위약 치유 중재 과정에서의 신경 및 분자적 변화"(2025)의 연구 실험 설계를 담고 있는 그림1 출처: https://www.nature.com/articles/s42003-025-09088-3 Fig. 1: Study design, participants, data collection, and recruitment에 대한 설명 이 그림은 7일간의 집중 명상 프로그램이 인간의 뇌와 신체에 미치는 영향을 과학적으로 측정한 연구의 전체적인 설계를 보여주고 있다. A. 연구진은 먼저 뇌와 신체의 생물학적 변화를 포착하기 위한 다양한 측정 방법을 준비했다. 뇌의 변화를 관찰하기 위해 MRI를 통한 기능적 연결성과 구조적 변화를 측정하고, 신체의 변화를 파악하기 위해 혈액 샘플에서 신경 성장 인자, 대사 물질, 단백질, 그리고 엑소좀 내 RNA까지 광범위하게 분석하는 체계를 구축했다. B. 연구에는 총 20명이 참여했는데, 이 중 14명이 여성, 6명이 남성이었으며 평균 연령은 46세였다. 참가자들은 명상 경험 수준에 따라 초보자와 숙련자로 구분되었고, 각 참가자의 생체 표지자 수준도 사전에 측정되어 분류되었다. C. 프로그램은 9일에 걸쳐 진행되었다. 실제 개입 프로그램은 Day 1부터 Day 7까지 7일간 진행되었으며, 참가자들은 매일 4-6시간의 명상, 2-4시간의 재개념화 교육(고통과 치유에 대한 인식 전환), 그리고 1시간 내외의 치유 의식에 참여했다. 프로그램...

천문학적으로 의미가 없는 1월 1일은 왜 새해 첫날이 되었을까?

천문학적 관점에서 볼 때 1월 1일은 참 애매한 날입니다. 지난 번에 '크리스마스와 동지 축제'라는 시리즈 글을 다루면서 동지가 '시간의 마디'로 인식된 측면(참고: 절기, 시간의 마디와 의례 본능 )도 이야기한 바 있습니다만, 천체의 움직임(태양이나 달)과 1월 1일은 사실 연결되어 있지 않습니다. 태양 고도의 극점(solstice)이나 평분점(equinox)은 시간 사이클 상에서 변화의 기준점 역할을 하지만 달력에는 애매한 위치에 자리잡고 있습니다. 21, 22일 혹은 22, 23일입니다(2023 춘분: 3월 21, 하지: 6월 21일, 추분: 9월 23일, 동지: 12월 22일). 왜 이렇게 되었는가를 역사적 기원으로 이야기하면 율리우스력을 이야기하게 됩니다. 율리우스 카이사르가 새로운 역법을 정할 때 1년을 365.25일로 정하고(소수점 시간은 윤년으로 처리), 춘분을 3월 23일로 정했다고 합니다. 그래서 지금의 1월 1일이 신년의 첫날이 된 것이라고 합니다. 춘분을 4월 1일로 만들었다면 어땠을까요? 그럼 동지가 1월 1일이 되었을 겁니다. 왜 그런 선택을 하지 않았을지 궁금합니다. 천문학적 기준점을 왜 새해 첫날로 삼지 않았을까라는 의문은 계속 해소되지 않습니다. 고대 로마 달력 https://www.througheternity.com/en/blog/history/beware-ides-march-assassination-julius-caesar.html 율리우스력의 기원이 되는 이집트력을 생각해 봐야 하는 것인지도 모릅니다. 이집트력은 농경 생활과 천문 지식의 결합을 통해서 만들어졌다고 볼 수 있습니다. 고대 이집트 달력 https://historicaleve.com/ancient-egyptian-calendar/ 이집트인들은 나일강의 범람 주기, 천문 현상의 변화에 대한 지식을 가지고 한 달을 30일, 1년을 365일(3개 계절-범람기Akhet, 발아기Peret, 추수기Shemu)로 하는 역법...