우선 기본 플젝의 gradle은 기존과 동일하다.
(joda time lib만 추가)
...
dependencies {
compile group: 'joda-time', name: 'joda-time', version: '2.9.7'
compile('org.projectlombok:lombok')
compile("org.springframework.boot:spring-boot-starter")
testCompile("org.springframework.boot:spring-boot-starter-test")
}
...
첫번째로 스케쥴만 진행해보자. 스케쥴의 경우는 @EnableScheduling 만 추가하면 설정에서 딱히 할 건 없다.
@EnableScheduling
@SpringBootApplication
public class WebScrapingApplication {
public static void main(String[] args) {
SpringApplication.run(WebScrapingApplication.class, args);
}
}
실행할 Tasks를 @Component등록 후 boot 실행
@Slf4j
@Component
public class SiteScraping {
@Scheduled(fixedRate = 5000)
public void download() {
log.info("Download At {}", DateTime.now().toDate());
}
}
@Scheduled(fixedRate = 5000) 의 경우는 5초마다 해당 메소드가 실행된다. 동일하게 cron 형태의 경우는 @Scheduled(cron="*/5 * * * * *") 이렇게 사용하면 된다.
이제 스케쥴을 지정했으니 실질적인 스크래핑을 해보자. 목표는 '쿠팡등과 같은 쇼핑몰의 상품정보를 주기적으로 가져온다 ' 이다.
짬내용.. 만약 spring boot실행시 오류가 아래와 같다면 실행 속성(program arguments)에 '--debug'를 추가한 후, 실행한다.
Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
Spring Batch를 이용해 스크래핑하는 것이 목표이지만 우선은 일반적인 방법에서 부터 진행해보자.