1 번째 수정본
WWW::Mechanize::Firefox
아주 좋다 -_-b 정말 좋다.
/WWW-Mechanize의 단점은 자바스크립트를 처리하지 못한다는 것. 그래서 최근에 링크나 버튼의 동작을 자바스크립트로 제어하게 되어 있는 사이트에서는 쓰기가 매우 힘들었는데... 이 모듈은 자기가 firefox를 구동해서 웹사이트에 접근한다. 그래서 버튼이나 특정 영역을 클릭하는 동작 등을 그대로 시킬 수 있다.
my $fox = WWW::Mechanize::Firefox->new();
...
my $camera = $fox->selector( 'span#qbi', single => 1 );
$fox->click( { dom => $camera, synchronize => 0 } );
...
$fox->eval( 'google.qb.ti(true)' );
my $content = $fox->content()
2. 유용한 옵션이나 메쏘드
WWW::Mechanize::Firefox->new() 생성자에
-
activate => 1
- 새 탭을 생성했을 때 그 탭이 활성화되도록 함
-
tab => 'current'
- 현재 실행 중인 파이어폭스의 활성 탭을 사용
autoclose_tab(0)
- 0으로 지정해주면 스크립트 실행이 끝난 후 탭이 닫히지 않게 한다. 기본값은 1이라서 곧바로 닫혀버림
3. MozRepl 부가 기능 필요
이 모듈을 쓰려면 먼저 firefox 에 mozrepl 확장 기능이 있어야 한다. 이걸 설치하면 4242 포트에 접속해서 파이어폭스를 제어할 수 있게 된다.
설치 후에 도구->MozRepl->Start
를 해서 실행을 해줘야 한다.
3.1. Firefox 20.0 에서 동작하지 않는 문제
그런데 이 mozrepl 1.0 버전이 Firefox 20.0 에서 동작하지 않는다. start가 되지 않음.
firefox를 구버전으로 강제로 다운그레이드할 수도 있겠지만... 이 모듈 github에 갔더니 누가 이미 패치를 올려놨더라.
따라서 저걸 직접 적용해서 설치해줘야 한다.
- 일단 저 github 페이지에서 전체 파일을 zip 파일로 다운로드를 받는다. [다운로드 링크]
- 압축을 푼다.
- 저 패치 페이지에서 패치된 repl.js 파일을 받아온다. [다운로드 링크]
- 받아온 repl.js 를, 원래 있던 파일(chrome\content\repl.js)을 덮어쓴다.
- 다시 zip으로 압축하고, 확장자를 xpi 로 바꾼다.
- firefox에서 도구-부가 기능 에 들어간 후, 상단 톱니 아이콘을 클릭해서 '파일에서 부가 기능 설치'를 선택하여 저 xpi 파일을 설치한다.
4. Comments
컴퓨터분류