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

[nodejs] request, cheerio 를 이용한 웹페이지 크롤링

nodejs 를 이용하 웹페이지를 크롤링하는 것을 스터디 하고 있다. 아래는 nodejs의 request, cheerio 모듈을 이용하여 SIR 의 자유게시판의 제목, 작성자이름, ip 정보를 크롤링하는 코드이다. 자유게시판 리스트에 접속하여 게시글보기 링크의 href 값을 얻어 각 게시글보기 페이지에 접속하여 제목, 작성자명, ip 정보를 수집한다. SIR 사이트에 동시접속하는 것을 막기 위해 async, await 구문을 사용하여 순차적으로 게시글 보기가 실행되도록 […]

Read More

chrome headless 모드를 이용하여 랜더링된 html 소스 가져오기 #2

혼란하다. 혼란해!! 지난 번 포스트를 바탕으로 좀 더 기능 개선을 거친 버전이라고 할 수 있을 것 같다. 실제 서비스로 사용하기에는 어떨지 모르겠지만.. 브라우저로 접속해서 입력한 url 페이지에 접속해서 html 소스를 가져오도록 했다. nodejs와 기타 여러 모듈을 사용했는데.. nodejs는 책을 한 줄도 보지 않았기 때문에 뭔 소리인지 모르겠다. 우선 nodejs와 기타 모듈 설치를 진행한다. $ curl […]

Read More

[PhantomJS] Ubuntu 16.04에서 QXcbConnection: Could not connect to display 오류 해결

우분투 16.04 LTS 서버에서 PhantomJS를 아래 명령어로 설치하고 실행 때 오류가 발생할 수 있다. # apt install phantomjs 오류 메시지는 아래와 같다. QXcbConnection: Could not connect to display PhantomJS has crashed. Please read the bug reporting guide at <http://phantomjs.org/bug-reporting.html> and file a bug report. Aborted (core dumped) 위와 같은 오류가 발생하면 xvfb 패키지를 설치하고 아래와 […]

Read More