通过java定时抓取百度实时热点

1.通过线程的方法

import java.text.SimpleDateFormat;
/**
 * Created by hua on 2019/3/31.
 */
public class test {
    public static void main(String[] args) {
        Thread t = new Thread(){
            public void run(){
                time_on();
            }
        };
        t.start();
    }
    public static void time_on(){
        while(true){
            try{
                Thread.sleep(100);
                SimpleDateFormat data = new SimpleDateFormat();
                System.out.println("执行时间"+data);
            }catch (Exception e){
            }
        }
    }
}

 

2.可以通过java的Timer类来进行定时调用

创建DataTimerTask类继承TimerTask 并重写run方法

public class DataTimerTask extends TimerTask {
    public void run() {
        try {
            Day01_BaiduNewsCrawler.function();
        } catch (Exception e) {

        }
    }
}

定时每天下午抓取百度实时热点

//时间间隔
    private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;//一天
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        /*** 定制执行方法 ***/
        calendar.set(Calendar.HOUR_OF_DAY, 16);
        calendar.set(Calendar.MINUTE, 34);
        calendar.set(Calendar.SECOND, 0);
        Date date = calendar.getTime(); //定时任务的时间
        Timer timer = new Timer();
        DataTimerTask task = new DataTimerTask();
        timer.schedule(task,date,PERIOD_DAY);
    }

总结Timer类的其他方法

1、这个方法是调度一个task,经过delay(ms)后开始进行调度,仅仅调度一次。
public void schedule(TimerTask task, long delay)
 
2、在指定的时间点time上调度一次。
public void schedule(TimerTask task, Date time)
 
3、这个方法是调度一个task,在delay(ms)后开始调度,每次调度完后,最少等待period(ms)后才开始调度。
public void schedule(TimerTask task, long delay, long period)
 
4、和上一个方法类似,唯一的区别就是传入的第二个参数为第一次调度的时间。
public void schedule(TimerTask task, Date firstTime, long period)

你可能感兴趣的:(java爬虫,技术)