Anki 용 사전 Scraper by 아름다운 국(?).

얼마 전부터 영단어 공부를 시작하여, 한동안 안쓰던 Anki 를 다시 꺼내들었다.
확실히 Anki 는, 열심히만 쓰면 굉장히 강력한 도구다. 잊을만 하면 물어보고, 또 잊을만하면 또 물어보니까 자연스레 외워지게 된다.

그렇게, 새로운 단어만 꾸준히 추가하면 됐을 텐데…
그 작업은 다소 귀찮고, 사실 그리 해야 하는 일도 아니었으니(이 나이에 단어 외우고 있는 사람이 몇이나 될까?), 슬슬 눈이 딴 데로 돌아가기 시작했다.

첫번째는 Anki 에 입력할 때 쓰일 형식, 즉 css 를 손보는 일이었다. css 에 관한 기억이 거의 다 사라진 게 문제였지만, 그래도 예전에 공부한 책들을 꺼내보면서 큰 어려움없이 이 난관(?)을 헤쳐나갈 수 있었다.

문제는, 내용이었다.
새 단어의 뜻, 발음기호, 예문들을 찾아 넣어야 하는데, 이걸 어디서(어느 사전) 찾아서 넣을 지, 어떤 내용을 넣을 지가 문제였다. 또, 이왕 css 를 사용하기로 했으므로, HTML Tag 도 넣어주고 싶었다.

그냥, 적당한 사전을 택해서, 적당히 복사/붙이기 하고, HTML 작업도 해줬으면 됐다. 내가 수험생도 아니고, 하루에 몇 개씩 단어를 추가할 일도 없고, 그저 일주일에 많아야 10개 안팎 정도 새 단어를 익힐텐데, Anki 에 그 정도 입력하는데 정말 길어야 1시간이면 된다.
그런데, 머리 속에서 뭔가 ‘도망가자(逃避機制?)’는 외침이 들려왔다.

단어 외우는게 귀찮으니, Anki 에 입력하는 작업을 좀 더 편하게 하고 싶다! 는 생각으로 도망가 버렸다.
역시 세살 버릇은…


의도야 어쨌든, 작업에 착수했다.
사전은 Collins Cobuild 사전과 다음 사전을 택했다.

그리고.. 첫 삽질을 헛삽질로 시작했다.
해당 사전 웹 페이지에서 내용을 전체 선택(Ctrl+A)하고 명령을 내리면, 선택한 부분이 자동으로 내가 원하는 형식(Anki 에서 설정한 css 에 맞게)으로 바뀌게끔 하고 싶었다.
무식하게 웹페이지에서 화면을 전체 선택하는 방법을 택했다는 게 크나큰 문제였다.

그리고 한 달 여.
Python Regex 와 싸움과 씨름을 거듭하여, 원하는 결과를 얻어내긴 했다.
그 덕에 기존 Re 에서 훨씬 발전한 Python Regex Module을 알게되기도 했다. 헛삽질이었지만, 결과로 근력은 길러졌다고나 할까.

물론, 그 한 달동안, 새로운 단어는 거의 추가하지 않았다. 정신이, 목적보다는 수단에 팔려버린 결과가 그거였다.
어쨌든, 이젠 새롭게 만든 도구를 사용하여 즐겁게(?) 학습에 전념하는 일만이 남아있었는데…

우연한 기회에, 보던 Python 책에서 Beautiful Soup에 관해 알게 되었다.

아…….
아………
젠장…….

Regex 로 그 개 고생을 한 게 다 븅신 짓이었구나.
전후 관계를 따지고, 온갖 if 를 붙이고, Lookaround 를 써야 하나 고민했던 시간들이, 한 순간에 하늘로 흩어져버렸다. (오호 통재라. 散Regex功德 이로세.)

Beautiful Soup 을 알게 된 뒤로, 기존에 삽질했던 코딩 경험을 바탕으로, 훨씬 쉽고 빠르게 원하는 결과를 얻을 수 있게 됐다. (한 일주일 걸렸나..)
역시, 아는 게 힘이다.
무식하면 몸이 고생하는 거지.


Collins 사전이 끝났으므로, 이제 Macmillan 사전 작업으로 넘어가보고..
GUI 구현은 당장은 무리가 있다. 그렇지만 언젠가는 해볼 수 있도록, 머나먼 ‘꿈’ 기획으로 남겨놓기로 한다.
지금은 CopyQ 를 이용하여 작업하기로 한다.

다음 사전은 사전 내용을 Javascript 로 가져와서 HTML TAG 로는 안보이는데, 이 부분은 어떻게 처리해야할지 모르겠다.
다음이 안된다면 네이버로 해도 되니까, 별 문젠 아니다.


다시 말하지만,
정작 중요한 건 이런 거 만드는게 아니고, 단어 외우는 거다. ^^

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.