블로그 읽은 횟수 읽기

웹 주소와 CSS Selector

웹 페이지 주소와 데이터를 지정할 수 있는 CSS selector만 있으면 웹 데이터를 읽을 수 있다. 주소는 이해하기 쉬운 반면 CSS Selector는 상대적으로 조금 불편할 수 있다. 최신 브라우저들은 웹 페이지의 특정 텍스트를 선택할 수 있는 CSS selector를 제공함으로 쉽게 확인할 수 있다. 크롬 브라우저라면 Ctrl-Shift-c 키를 누르고 마우스로 원하는 텍스트를 선택한다. 그리고 브라우저 하단 혹은 오른쪽에 생성된 크롬 개발자 도구의 Elements 탭에서 하이라이트된 소스에 마우스를 옮기고 Copy 메뉴의 Copy selector를 선택한다. 그러면 클립보드에 CSS Selector가 저장된다. 이제 웹 페이지 주소와 이렇게 얻은 CSS Selector를 사용하여 웹 데이터를 읽을 수 있다.

블로그 읽은 횟수를 읽기

내 블로그는 누군가 읽은 횟수 보여준다. 이 정보로는 내가 쓴 글이 도움되었는지 알 수는 없지만 그래도 확인하는 것은 즐겁다. 댓글이 없음으로 대부분의 방문은 스쳐 지나간 걸로 짐작하고 있다. 터미널에서 아래 명령어를 사용하여 몇 번 읽었는지 확인하고 있다. 브라우저는 필요 없다.

$ curl -s https://agvim.com/ | hgrep -t '#blog-stats-22 > ul > li'
21,123 히트

동작 방법은 간단한데 Curl로 웹 페이지를 읽고 hgrep으로 원하는 텍스트를 찾는다. Curl의 두 번째 인자가 웹 페이지 주소이고 hgrep의 두 번째 인자가 CSS selector이다.

단어별 빈도수 읽기

조금 더 많은 명령어를 사용하여 웹 데이터 텍스트를 가공할 수도 있다. StaticGen는 정적 블로그를 만들어주는 여러 툴을 가지고 있으며 각각 툴 대한 간단한 설명을 포함하고 있다. 이 설명중에서 가장 많이 언급된 단어를 찾아보자. 한 줄(?)이면 충분하다.

$ curl -s https://www.staticgen.com/ \
| hgrep -t "p[class*=Card__]" \
| sed -e 's/\s\+/\n/g' \
| sed -e 's/\.//g' \
| sed -e 's/,//g' \
| tr [:upper:] [:lower:] \
| sort \
| uniq -c \
| sort -r \
| head -10
    173 static
    141 generator
    134 a
    107 site
     80 and
     60 for
     46 simple
     46 is
     45 in
     33 written

Curl로 시작하는 명령어는 10줄이나 되지만 이해하기 어렵지 않다. 명령어들은 Bash의 파이프를 통하여 데이터를 전달받고, 처리하고, 다시 전달하는 과정을 반복한다. 명령어 결과로 가장 많이 언급된 10개의 단어를 찾을 수 있다. Static Site Generator를 제외하고 보니 simple 단어가 가장 많이 언급되었다. 성급하게 결론을 내리면 이들은 자신을 간단하다고 자랑한다는 것을 알 수 있다. 실제로 그렇다는 것이 아니니 과정만 즐기길 바란다. 각 명령어들은 한 가지 일만 처리함으로 이해하기 쉽다. 명령어 외에 다른 방법으로 웹 데이터를 읽는 방법도 참조하길 바란다. 함수형 프로그래밍에서 데이터 처리하는 방법과 닮았다. 각 명령을 간단하게 정리했다.

명령어 설명
curl -s https://www.staticgen.com/ 웹 페이지를 읽는다.
hgrep -t “p[class*=Card__]” 한 줄 설명을 지정한다.
sed -e ‘s/\s+/\n/g’ 공백을 행 변경 문자로 바꾼다.
sed -e ‘s/.//g’ . (dot)를 지운다.
sed -e ‘s/,//g’ , (comma)를 지운다.
tr [:upper:] [:lower:] 모두 소문자로 바꾼다.
sort 정렬한다.
uniq -c 단어 앞에 반복된 총 회수를 추가한다.
sort -r 역순으로 정렬한다.
head -10 처음 10줄 만 보여 준다.

웹 크롤링이나 고급 프로그래밍 언어를 사용하지 않아도 작은 명령어들을 함께 사용하여 웹 데이터를 가공할 수 있다. 한번 만들어 놓으면 자주 사용할 수 있으며 시간순으로 저장하면 변화 과정을 추적할 수도 있다. 브라우저 없이 웹 데이터 읽는 방법은 개인 툴 박스에 넣어두기에 딱이다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.