기본 콘텐츠로 건너뛰기

라벨이 코딩인 게시물 표시

블로그 글 백업 1단계 성공

우여곡절 끝에 텍스트 백업을 마쳤다. 글을 비공개 상태로 스크랩핑 하는 방법이나 word 파일에 텍스트와 이미지를 모두 넣어 저장하는 방법 등을 고심했지만, 현재 나의 코딩 실력으로는 하세월이었다. 검색으로 찾아 볼 수 있는 코드와 유튜브 강의들을 참고해서 노가다로 만들었다. 약 790여개 * 의 아티클을 word 파일로 저장할 수 있었다.  * 위 이미지에서 'range' 항목이 709-907로 되어 있는데(이 의미는 url주소의 끝 숫자가 709에서 906까지 해당 페이지에 대해서 아래의 코드를 실행) 중간 중간에 예상하지 못한 error들을 다루며 코드를 바꿔가면서 했기 때문이다. 출발한 url의 숫자는 61번이었다. 중간에 결측치가 있기 때문에 846건의 아티클을 수집한 게 아니었다. 일정한 패턴의 url 주소를 바탕으로 해당 페이지의 내용을 구문분석해서 텍스트를 추출하고 그렇게 추출된 텍스트에서 제목, 시간 정보를 추출하여 가공하고, 본문 텍스트를 뽑아 제목과 본문을 워드 파일로 저장하게 한 코드다.  워드 파일명은 해당 게시물의 시간 정보+글 제목으로 만들었는데, 이 덕분에 가공이 더 필요했다. 제목에는 '<', '/', '?', '!', ':', '"' 등 컴퓨터 파일명에 쓸 수 없는 기호들이 담겨 있다. 이를 파일명에 쓸 수 있는 기호나 문자로 변환해 주거나 삭제할 필요가 있었다.  파일명을 그렇게 어렵게 정하지 않았다면 코드가 더 단순해졌겠지만, 파일에 담긴 글의 정보를 손쉽게 확인하게 하기 위해서 글제목으로 파일명을 삼기로 한 기준은 포기할 수 없었다   이 백업 데이터 중에서 무엇을 가공해서 쓸지는 또 한참 고민과 노가다가 남아 있다. 티스토리 블로그는 각 게시물의 이미지를 추출한 후에 모두 삭제할 예정이다. 조만간 티스토리와는 정말 안녕이다.

selenium을 이용한 카카오 로그인┃웹스크래핑 공부(2)

티스토리 블로그에서 글을 백업하기 위한 첫 관문은 코딩을 이용해서 로그인을 하는 것이다. selenium(파이썬을 이용해 웹에서 자동적 상호작용을 하게 하는 도구)을 이용해 티스토리 블로그 로그인을 어떻게 하는지에 대한 코드는 검색을 하면 여기저기에서 볼 수 있다. 일단 kakao 아이디가 통합되어 있다면 2022년 이전 코드는 소용이 없는 것 같다. 또 '카카오 로그인'을 설명하는 게시물들 중에 요즘 로그인 코드와 다른 구버전의 코드로 작성된 것도 보인다. 가령 이 코드 같은 경우는 실제로 작동하지 않는다. 카카오 웹 구조가 위 코딩이 짜였을 때와 달라졌기 때문이다. 또 Python 버전에 따라서 selenium 코드도 다르다. 옛날 버전에서는 driver.find_element_by_id('id_email_2').send_keys(user_id) 라고 적는 것이 최신 버전에서는 다음과 같이 바뀌었다. driver.find_element(By.ID, 'id_email_2').send_keys(user_id) 그래서 검색 가능한 코드들을 복붙한다고 결과가 나오지 않는다. 사소한 문제 때문에 작동하지 않는 코드를 써야 하기도 한다. 로그인 자동화 시에 '자동 로그인'을 막는 포털의 대응 때문에 과거에 알려진 방법이 더 이상 유효하지 않은 경우도 있다. 네이버 로그인의 경우 몇 가지 우회 방법이 알려져 있는데( 참고 ), 인간스러움을 보이기 위해서 코드 실행 사이에 '쿨 타임'을 넣는다던지, 로그인 시에 사람처럼 복붙하게 해서 네이버를 속인다 든지 하는 스킬이 덧붙여진다( 참고 ). 덕분에 time.sleep() 함수라던지, pyperclip.copy('비밀번호'); tag_pw.send_keys(Keys.CONTROL, 'v') 함수를 써 봤다. 그래서 네이버에 로그인 하는 것까지는 성공했다. 그러나 자동 로그아웃은 실현시키지 못했다. 'a href

블로그 이사와 웹스크래핑 공부 (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만 가능하고 이미지는 별도로 업로드 해야 하니. 이런 걸 프로그래밍해서 백업 파일을 만들고, 그 백업 파일을 자동으로 업로드할 수 있다면 좋을 것이다. 그러나 지금으로서는 백업은 자동으로 하고, 업로드는 선별과 수정 작업을 거쳐야 할 것 같다. 쓸만한 옛날 글을 재활용 한다고 할 때 어색한 문장이나 바뀐 생각을 반영해서