자바가 설치되어있어야 합니다.
설치
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 폴더에 필요한 라이브러리들을 넣어두면 그루비에서 사용할 수 있습니다.
2013년 2월 20일 수요일
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 파일을 지워줍니다.
매시간 수행되도록 "제어판>예약된작업" 에 등록합니다.
로그인절차도 거쳐야 합니다.
매시간 이 웹페이지를 읽어서 메모장에 보여주는 스크립트를 작성해보았습니다.
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 파일을 지워줍니다.
매시간 수행되도록 "제어판>예약된작업" 에 등록합니다.
피드 구독하기:
글 (Atom)