페이지

레이블이 groovy인 게시물을 표시합니다. 모든 게시물 표시
레이블이 groovy인 게시물을 표시합니다. 모든 게시물 표시

2013년 2월 20일 수요일

groovy 설치

자바가 설치되어있어야 합니다.

설치

http://groovy.codehaus.org/
에서 그루비 파일을 다운로드 받습니다. (groovy-binary-2.1.1.zip)

적당한 위치에 압축을 풀어줍니다.
C:\groovy-2.1.1

환경변수를 등록합니다.
GROOVY_HOME = C:\groovy-2.1.1
PATH = %PATH%;%GROOVY_HOME%\bin;

버전 정보를 출력하여 제대로 설치되었는지 확인합니다.
> groovy -v
Groovy Version: 2.1.1 JVM: 1.7.0_05 Vendor: ~~


라이브러리 설치 위치

%GROOVY_HOME%\conf\groovy-starter.conf 의 내용을 보면 그루비에서 사용하는 라이브러리들의 위치를 알 수 있습니다.


    # load required libraries
    load !{groovy.home}/lib/*.jar

    # load user specific libraries
    load !{user.home}/.groovy/lib/*.jar

    # tools.jar for ant tasks
    load ${tools.jar}


{groovy.home}/lib 또는 {user.home}/.groovy/lib 폴더에 필요한 라이브러리들을 넣어두면 그루비에서 사용할 수 있습니다.

2011년 3월 4일 금요일

groovy로 htmlunit을 사용하기

하루에 몇번씩 확인하는 웹페이지가 있습니다.
로그인절차도 거쳐야 합니다.
매시간 이 웹페이지를 읽어서 메모장에 보여주는 스크립트를 작성해보았습니다.

HtmlUnit 준비

http://htmlunit.sourceforge.net/ 에서 라이브러리를 다운받습니다.

클래스패스

htmlunit 을 사용하기위해서 클래스패스에 관련라이브러리들을 추가해야 합니다.

groovy.home/extlib/htmlunit 폴더를 만들고 관련라이브러리를 모두 복사합니다.

conf/groovy-starter.conf 파일에 아래내용을 추가합니다.
load !{groovy.home}/extlib/htmlunit/*.jar

htmlunit.groovy

import com.gargoylesoftware.htmlunit.WebClient
def client = new WebClient()
client.setJavaScriptEnabled(false)

// 로그인처리
def page = client.getPage('로그인주소')


// 첫번째 폼이 로그인폼일경우 page.forms[0]
def j_username = page.forms[0].getInputByName('j_username') // 아이디 입력필드명
j_username.valueAttribute = '아이디'

def j_password = page.forms[0].getInputByName('j_password') // 암호 입력필드명
j_password.valueAttribute = '암호'

page = page.forms[0].submit() // 폼전송, 로그인처리
// 원하는페이지 가져오기
page = client.getPage('원하는페이지주소')

// 파일로 저장하고 html로 저장하고 싶으면 asXml()사용
new File('result.log').write(page.asText())

// 메모장으로 파일을 열어줍니다.
'notepad.exe result.log'.execute()


에러

Caught: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "org/w3c/dom/NamedNodeMap"
와 같은 에러가 발생하면
/extlib/htmlunit/xml-apis-*.jar 파일을 지워줍니다.

매시간 수행되도록 "제어판>예약된작업" 에 등록합니다.