[Python] 북한 신문 크롤러 제작 과정 North Korean Newspaper Crawler
오랜만에 북한 연구에 대한 글을 써보려고 한다. 참고로 나는 북한학 전공자는 아니다. 북한이탈주민과 사회복지적 개입에 관심이 있어 북한학과 수업을 몇개 들은 것이 전부이다. 아래의 내용은 2018년 2학기에 H교수님의 북한학과 수업에서 들은 내용이다.
북한학 연구는 매우 어렵다. 왜냐하면 ‘자료’의 문제가 크기 때문이다. 북한 문헌은 공간문헌(공식문헌)과 내부문헌(내부문건)으로 나뉜다. 내부문헌의 경우 탈북민, 연변 서점 등을 통해서 구매할 수 있다. 공간문헌에는 김일성/김정일 저작집, 신문기사(로동신문), 각종 저널(경제연구 등)이 해당한다. 공간문헌은 북한이 제공하는 유일한 1차자료이기 때문에 유용하다. 하지만 북한이라는 국가 특성상 (;;) 과장, 은폐가 있기 때문에 문자 그대로 독해하면 안된다.
특히 이 중에서 그나마 접근성이 높은 것은 로동신문과 같은 북한 신문들이다. 그래서 북한 신문을 활용한 연구들이 매우 많이 있다. 그러면 로동신문을 어떻게 보는가? 하면 국립중앙도서관 북한자료센터 혹은 북한대학원대학교 도서관 등에 가야한다. 하지만 자료의 반출이 불가능하다. 그래서 특히 나처럼 텍스트 마이닝같은 자동화된 텍스트 분석을 하려는 경우 원자료를 텍스트 그 자체로 얻을 수 없어 (받아 적을수도 없고..) 어려움이 있다.
그래서 직접 만들어보았다(!). 북한 뉴스 기사 크롤러. 여러 꼼수가 섞여 있으므로, 따라하실 분들은 따라 해도 좋으나 이로 인한 문제는 책임질 수 없다.
먼저 북한 신문기사를 텍스트화해서 제공하는 곳이 있다. 바로 KCNAWATCH이다. 이곳은 미국사이트이고, 연구 목적으로 제공되고 있으며 한국학이 강한 몇몇 미국 학교들은 협약하여 이 사이트를 무료로 제공하도록 하고 있다. 하지만 한국 학교들의 경우에는 국가보안법을 이유로 협약을 하지 않고 있으며, 최근에는 접속이 막히기 까지 하였다 ㅠ_ㅠ 이런 경우 VPN을 이용해서 우회하면 접속을 할 수 있긴 하다. (북한 웹사이트는 아니기 때문에 국가보안법 위반..은 아니지 않을까? 원래 국가보안법에서도 개인의 연구목적인 경우에는 적용되지 않기도 한다.)
이 경우 본격적인 VPN 사용이므로, 크롬의 확장프로그램보다는 아예 VPN 프로그램을 사용하는 것이 좋다. 프로그램의 경우 나는 softether vpn client를 사용한다. 사용법은 이 글에 자세히 설명되어 있으니 생략한다.

먼저 Uptime이 길면서 Line Speed도 괜찮은 VPN에 연결한 후에는, 크롤러를 돌리면 된다. 크롤러의 구조는 사실 크게 복잡하진 않다. 일단 Load more로 검색하게 되어 있어서 Selenium을 사용해야 한다.
KCNAWATCH 사이트에서 기사를 검색하는 링크에다가 query keyword를 입력한 후 접속을 한다.

크롬드라이버를 통해서 창이 켜지면 쭉쭉 내리는 스크롤링 명령을 내린다. 스크롤이 다 내려진 이후에는 url list를 불러온다.

이 다음에는 url 리스트를 불러와서 네이버 뉴스 기사 크롤러 등과 같이 각 기사별로 긁어서 append하는 명령을 해주면 된다. 아래와 같이 결과물이 출력된다.

※ 크롤러 자체는 공개, 공유하지 않습니다.