企业数据爬虫项目(二)

企业数据爬虫项目(艳辉VIP项目)

    • 第一天:下载解析网站页面
    • 第二天:多线程定时启动爬虫

第一天:下载解析网站页面

第二天:多线程定时启动爬虫

一个爬虫项目,会涉及到数据存储,Queue队列,缓存使用,多线程爬取,定时任务爬取,解决频繁抓取IP被封问题,zookeeper分布式监控节点,邮件提醒等内容。
这里我们探讨其中两个问题,一是多线程,一是定时器。

// 固定线程池
	private ExecutorService newFixedThreadPool = Executors
			.newFixedThreadPool(Integer.parseInt(LoadPropertyUtil.getConfig("threadNum")));
newFixedThreadPool.execute(new Runnable() {

				public void run() {
					//业务。。。
				}
});

Java通过Executors提供四种线程池,分别为:
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

//获取默认调度器
			Scheduler defaultScheduler = StdSchedulerFactory.getDefaultScheduler();
			//开启调度器
			defaultScheduler.start();
			
			//被调度的任务
			JobDetail jobDetail = new JobDetail("url-job", Scheduler.DEFAULT_GROUP, AddUrlJob.class);
			//定时执行任务
//			CronTrigger trigger = new CronTrigger("url-job", Scheduler.DEFAULT_GROUP, "00 11 18 * * ?");
			CronTrigger trigger = new CronTrigger("url-job", Scheduler.DEFAULT_GROUP, "0/10 * * * * ?");
			//添加调度任务
			defaultScheduler.scheduleJob(jobDetail , trigger);

这里用了quartz定时,每10秒运行AddUrlClass类,即是将url添加到队列中,让爬虫爬取url地址的内容。

需要下载源码可点击 艳学网

下载源码后,记住分享哟!

第一步:微信关注公众号艳学网!

第二步:关注后打开菜单“艳辉福利”——“java福利”,转发文章至朋友圈。

长按自动识别二维码,即可关注微信公众号“艳学网”
在这里插入图片描述


http://www.niftyadmin.cn/n/785354.html

相关文章

关于ckeditor 之 上传功能

度了很多文章,看了很多关于ckeditor配置上传功能的文章,没一个写得清楚的, 就是简单的根目录下.config.js 增加 config.filebrowserUploadUrl"/admin/film/ckeditorUpload"; //文件浏览上传地址然后就是 \plugins\image\dialogs 的…

一起艳学dubbo

一起艳学dubbo 想学习分布式,就从dubbo学起,不要问为什么,因为阿里曾经开源并使用过dubbo。学dubbo,也要从zookeeper学起,动物园的世界你要了解,食物链有金字塔,就有攻击者和被攻击者&#xff0…

Python 函数之装饰器

1、函数 #### 第一波 #### def foo():print foofoo #表示是函数 foo() #表示执行foo函数#### 第二波 #### def foo():print foofoo lambda x: x 1foo() # 执行下面的lambda表达式,而不再是原来的foo函数,因为函数 foo 被重新定义了2、需求 初创…

SSM(spring mvc+spring+mybatis)学习路径——1-1、spring入门篇

目录 1-1 Spring入门篇专题一、IOC接口及面向接口编程什么是IOCSpring的Bean配置Bean的初始化Spring的常用注入方式专题二、BeanBean配置项Bean的作用域Bean的生命周期AwareBean的自动装配(Autowiring)ResourcesBean管理的注解实现及例子专题三、AOP什么是AOP切面AOP实现方式AO…

java将多张图片合成视频

java将多张图片合成视频 需求 近几天,无聊就看看抖音,视频信息传播信息,相亲去抖音,网红去抖音,秀恩爱去抖音。。。走在大街上,几个小妹妹拿着手机自拍干是玩抖音还是直播呢?每个人都想当导演…

MySQL InnoDB Update和Crash Recovery流程

MySQL InnoDB Update和Crash Recovery流程 概要信息首先介绍了Redo,Undo,Log Sequence Number (LSN),Checkpoint,Rollback Pointer (ROLL_PTR),Transaction ID (TRX_ID),Transaction Serialization Number(…

移动端网页录音上传,服务端智能语音识别

移动端网页录音上传,服务端智能语音识别 最近,看了创业时代的魔镜,想法突如起来,能不能手机发送一条语音,语音上传到后台,自动识别语音的信息,转化为文字,将文字分析,然…

生成二维码海报2

生成二维码海报2 海报 使用链接:http://47.98.237.162/tool/getPoster 之前也做了生成二维码的海报,这次将会开源,做一个ai码平台,提供免费的api调用,然后做一款艳听的应用。艳听应用将会调用本文的api,…