puppeteer, cheerio 를 이용한 웹 크롤링

puppeteer, cheerio 를 이용해 네이버 쇼핑의 특정 카테고리 상품명 가격을 크롤링하여 콘솔에 표시하는 것을 테스트했다. nodejs 와 puppeteer, cheerio 는 미리 설치되어 있어야 한다. cheerio 는 jQuery 문법을 그대로 사용할 수 있어 상당히 편하다. 네이버 쇼핑의 상품정보를 크롤링하는 경우에는 puppeteer 모듈을 사용하지 않고도 가능하다. 하지만 최근의 vue.js 등을 사용한 웹페이지는 크롤링이 가능하지 않을 수 있기 […]

Read More

headless-chrome-crawler 사용해보기

수집, 크롤링에 관심이 생겨서 자료를 찾다 발견한 headless-chrome-crawler(이하 HCC)를 사용해보기 위해 가상머신을 세팅하고 테스트 환경을 구성했다. 머신은 Ubuntu 18.04 로 설정하는데 관리 편의를 위해 vagrant 를 사용한다. 1. 가상머신 접속 2. nodejs 설치 3. yarn 설치 4. headless-chrome-crawler 설치 5. 실행 테스트 node examples/priority-queue.js 실행 결과는 아래와 같다. Requested https://example.com/.Requested https://example.net/. 만약 libX11-xcb.so.1 관련 오류가 […]

Read More

MaiaDB 서버 root 비밀번호 재설정

많지는 않겠지만 DB 서버의 root 비밀번호를 분실해서 곤란한 경우에 처할 때가 있다. 오늘이 그런 날이었는데.. user 의 로그인 정보를 변경해야 하는데 root 비밀번호를 알 수가 없어 결국은 root 비밀번호를 재설정할 수 밖에 없었다. 운영 중인 DB 서버를 종료하고 –skip-grant-tables 를 이용해 root 접속 때 비밀번호를 체크하지 않도록 한다. DB 서버에 정상적으로 접속했다면 root 비밀번호를 변경한다. […]

Read More

웹서버 상태 체크 후 자동 재시작 쉘 스크립트

사용하는 가상서버의 문제일까? 간혹 nginx 웹서버가 다운되어 블로그 접속이 불가능한 경우가 생긴다. 근데 이런 일은 꼭 새벽에 발생한다. 오늘도 어김없이 새벽에 그런 일이 발생했지만 깊은 잠에 빠져있던 때라 아침에 일어나서야 확인하고 조치할 수 있었다. nginx 만 재시작하면 되는 간단한 일이다. 그래서 서버 상태 체크 후 자동으로 서버저를 재시작하는 스크립트를 만들어 봤다. 응답코드가 200 이 아니면 […]

Read More

nginx 에서 useragent 로 접속 차단하기

회사에서 관리 중인 서버에 특별한 이유가 없는데 접속 속도가 어마어마 하게 느리고 CPU 사용률도 높아서 원인을 찾아보다 접속 로그에 요상한 bot이 계속해서 접속하는 것을 발견하고 useragent 를 이용해 차단하기로 했다. ip는 계속해서 변하기 때문에 어려움이 있다. /etc/nginx/ 디렉토리에 useragent.rules 파일을 생성하고 아래 내용을 추가한다. 다음으로 nginx.conf 파일에 아래와 같이 추가한다. 추가된 내용은 include /etc/nginx/useragent.rules; 이다. […]

Read More