글쓰기 메뉴

Reason why I chose Nightmare over phantomjs, casperjs, selenium and ...

테스트용이 아니라 자동화, 스크랩핑(automation, scraping) 용도로 헤드리스 브라우저 - headless browser: 그래픽 인터페이스가 없고 프로그래밍으로 컨트롤 가능한 브라우저 - 를 살펴보고 있는데 종류도 많고 문서 읽어보면 각각의 장점도 분명해서 선택이 어렵다.

이럴땐 사용자도 많고 소스도 오랜시간 검증된 안전한 선택이 좋겠다.


하지만 ㅋㅋㅋ 결론적으로 이번 플젝에 Nightmare 를 선택한 이유는..


Nightmare 공홈이 너무 귀여워서 ㅋㅋㅋㅋ


casperjs.png


phantomjs.png


selenium.png


nightmare.png


ㅋㅋㅋ 개귀염




phantomjs 를 엔진으로 쓰다가 2배가량 빠르다는 Electron 으로 엔진을 교체했다는 솔깃한 얘기는 덤.

콜백지옥을 경험하지 않아도 되는 코딩 스타일도 덤.

react 로 작성된 웹페이지와 같이 특정 노드를 대기할 수 있는 메소드가 있는 것도 덤.


- 끝 -


http://www.nightmarejs.org/

http://www.seleniumhq.org/

http://casperjs.org/

http://phantomjs.org/

https://electron.atom.io/

https://github.com/dhamaniasad/HeadlessBrowsers [헤드리스 브라우저 리스트 - outdated]

https://en.wikipedia.org/wiki/Headless_browser [헤드리스 브라우저 위키]


 

어디서 왔지?
다른 글들
0 0

우분투 14.04 wkhtmltopdf 설치

wkhtmltopdf 는 HTML 페이지를 PDF 로 만들어주는 오픈소스 도구로 Qt WebKit 엔진을 사용한다. 자매품인 wkhtmltoimage 는 같은 방식으로 HTML 을 다양한 형식의 이미지로 변환시켜준다.
Ubuntu 14.04 에서 apt-get 으로 wkhtmltopdf 패키지를 설치할 수 있으나 Qt 가 wkhtmltopdf 에 맟춰 패치되지 않았다면 몇 가지 기능이 제한된다. 예를 들면 HTML 에 있는 링크가 PDF 에 사라지는 등의 오류가 있을 수 있다. 관련 옵션은 --enable-external-link 인데 Qt 가 패치되어 있지 않으면 해당 옵션을 켤 수 없다. 
그러니 wkhtmltopdf 홈페이지에서 컴파일되어 있는 바이너리를 다운받아 설치하도록 하자. 만사가 편하다.
* 우분투 서버를 사용하고 있을 경우 X 시스템과 폰트관련 패키지가 설치되어 있지 않다. 이럴 경우 먼저 필요한 패키지와 폰트를 설치하자.
폰트는 마음에 드는 패키지를 찾아 설치하면 되는데 별도의 설정없이 바로 사용할 수 있는 한글 폰트는 unfonts, baekmuk, nanum 정도 되겠다. 각각 패키지는 아래와 같다. (우분투위키에서 CJK 폰트 참고)
은폰트 - unfonts
백묵폰트 - baekmuk
나눔폰트 - nanum
폰트툴과 폰트가 설치 된 후 wkhtmltopdf 다운로드 페이지에서 Ubuntu Trusty (14.04.1) 버전(64-bit)의 .deb 파일을 다운받아 아래와 같이 설치한다. 
설치 후 아래와 같이 확인할 수 있다.
webpage/url 이라는 주소의 웹페이지를 save.pdf 로 변환하는 명령어 예제는 다음과 같다. 자세한 옵션은 man wkhtmltopdf 로 확인할 수 있다.
--print-media-type
스크린 타입이 아니라 프린트 미디어로 PDF를 렌더한다.
--page-size
페이지 사이즈를 지정한다. Letter, A4, A3 등의 형식으로 지정할 수 있다.
* 공식 홈페이지에서 전체 리스트 링크를 제공하고 있으나 현재 사용이 연결이 되지 않는다. 소스에서 확인한 전체 리스트는 이 곳에 적어둔다.
* --page-width, --page-height 로 페이지 크기를 지정할 수 있다 
--dpi
dpi (dots per inch) 값을 지정한다.
-T, -B, -L, -R
상(Top), 하(Bottom), 좌(Left), 우(Right) 여백을 지정한다.
요즘 웹페이지의 PDF 변환이나 이미지 캡처는 요즘 PhantomJS 를 사용한 방식이 훨씬 많이 소개되고 있다. 의존패키지에 대한 고려나 설정에 대한 부담감이 없기 때문일텐데 개인적으로 wkhtmlto* 를 오래전부터 사용하고 있어서 정리해봤다.
0 0
Square 2f561b02a49376e3679acd5975e3790abdff09ecbadfa1e1858c7ba26e3ffcef

끝없이

0 0

노력

A:노력하면서 안 살면 어때? 그래도 다 살아가잖아.
B:네가 노력하지 않는 순간에, 많은 사람들은 누군가를 뛰어넘기 위해서 노력하고 있을 거야.
A:내가 누군가를 뛰어넘었는데, 다른 사람들이 나를 또 나를 뛰어넘으면 어떡해?
B:그럼 네가 그들을 다시 뛰어넘어야지.
A:계속해서? 누군가가 나를 뛰어넘지 못할 때까지?
B:그런 셈이지.
A:그래서 얻는 건 뭔데?
B:네가 그들보다 위에 있다는 뿌듯함 정도겠지.
A:그들보다 위에 있어서 좋은 건 뭔데?
B:당연히 너의 밑에 있는 사람들이 널 우러러보겠지.정말 대단하다는 듯이, 그런 눈빛으로.
A:그럼 이제 다른 사람들을 다 뛰어넘고 맨 꼭대기에 도착하면 아무것도 안 해도 되겠네?
B:아니지. 네가 가만히 있으면 누군가가 너를 또 뛰어넘잖아. 그러면 넌 또 그를 뛰어넘어야지.
아니면 그 자리를 유지하기 위해 계속 뛰어야지.
A:그럼 결국 맨 꼭대기라는 건 없는 거잖아.
B: 
0 0

상처

어제 바보 같이 학원을 또 빠졌다.
이유는 숙제를 하지 않는 것
못한 것은 아니였다. 
그럼 왜 하지 않았으냐는 질문이 나올 것이다.
하핫
그건 내가 진흙인형 같기 때문이다.
진흙인형은 한번 만지면 부셔저 버리니 불에 넣어 굳힌다. 그럼 다른 모양으로 된다는 선택지를 버리는 대신 영원히.  .  .  .  는 아니지만 반영구적으로  그 모습을 이루고 있을 수 있다. 
나는 그것과 같이 갇혀온 생활에 의해 모양이 잡히고 자신의 열등감이라는 불로  인해 금이  가버린 진흙인형이 되버렸다. 
만약 당신이 또는 당신의 자녀가 부셔진 인형을 가지고 있다면 어떻게 할 것인가?
대부분의 사람들이라면 버리겠다는 결정이다. 
부모라면 더 할것이다. 잘못하면 손이 다친다며 부셔진 장난감을 처리한다.
난 그 인형을 계속 가지고 있을것이다.
언제까지나 옆에 두며 손이 다쳐도 다시 낳는다며 웃으며 넘길 것이다.상처 난 손을 필사적으로  숨기면서 말이다.
난 그런 나를 가지고 있고 가끔씩 다치는 것이다.
어제는 그러한 날이었다.
분명 조심히 다루고 있었지만 진흙인형이 세월이 지나며 금이가고 부셔지듯이 나도 그러하였다.
그래서 나는 그 변화를 알고 있으면서도 가만히 납두었고, 결국 상처를 입었다. 
웃긴것은 그것을 버리지 못한다는 자신이다.
참으로 바보 같지 않나?
알리면 금방 손은 낳을텐데 참고 있었던 휴우증인지
지금은 입에서 웃음밖에 나오지 않는다.
고장난 라디오같이.
지금은 그저 기다릴뿐이다.
내가 완벽히 고장나 
부셔저 
사라지길
0 0

일이없다.

큰일이다..
일이 비는바람에
일당쟁이인 나는 일이 없다..
돈을 못번다
내일 인력 사무소라도 나가야겠다
아내의 한숨이 날로 커져간다..
젠장