Miner.java 爬虫启动类
package com.iteye.injavawetrust.miner; import java.util.concurrent.ThreadPoolExecutor; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; /**
* 爬虫启动类
* @author InJavaWeTrust
*
*/
public class Miner { private static final Log LOG = LogFactory.getLog(Miner.class); private MinerUrl minerUrl = null; private MinerConfig config = null; public Miner(MinerUrl minerUrl, MinerConfig config){
this.minerUrl = minerUrl;
this.config = config;
} public void start(){
//启动前 先校验配置
if(!MinerUtil.checkBeforeStart(config)){
LOG.info("配置出现问题,程序不能启动!!!");
return;
}
MinerUtil.starTime = System.currentTimeMillis();
//程序启动,将第一个起始页面放入待访问队列。
MinerQueue.addUnVisited(minerUrl);
//将URL 添加到URL队列 保证每个URL只访问一次
MinerQueue.addUrlSet(minerUrl.getUrl());
ThreadPoolExecutor executor = MinerThreadPool.getInstance();
//download
for(int i = 0; i < config.getMinerHtmlThreadNum(); i++){
MinerHtmlThread minerHtml = new MinerHtmlThread(config);
executor.execute(minerHtml);
}
//misering
for(int i = 0; i < config.getMiseringThreadNum(); i++){
MiseringThread misering = new MiseringThread(config);
executor.execute(misering);
}
//store
for(int i = 0; i < config.getMinserStoreThreadNum(); i++){
MinerStoreThread minerStoreThread = new MinerStoreThread(config);
executor.execute(minerStoreThread);
}
//monitor
MinerMonitorThread minerMonitor = new MinerMonitorThread();
executor.execute(minerMonitor);
} }
Miner.java 爬虫启动类的更多相关文章
- MinerUtil.java 爬虫工具类
MinerUtil.java 爬虫工具类 package com.iteye.injavawetrust.miner; import java.io.File; import java.io.File ...
- spring boot 启动类一定要放置到包的根目录下,也就是和所有包含java文件的包在同一级目录。如果不放置在根目录下,将会提示 no mybatis mapper was found
spring boot 启动类一定要放置到包的根目录下,也就是和所有包含java文件的包在同一级目录.将会将同一目录下的包扫描成bean. 如果不放置在根目录下,将会提示 no mybatis map ...
- webmagic的设计机制及原理-如何开发一个Java爬虫
之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫.最近终于集中精力,花了三天时间,终于写完了这篇文章.之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方 ...
- JAVA爬虫 WebCollector
JAVA爬虫 WebCollector 爬虫简介: WebCollector是一个无须配置.便于二次开发的JAVA爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫. 爬虫 ...
- java爬虫,爬取当当网数据
背景:女票快毕业了(没错!我是有女票的!!!),写论文,主题是儿童性教育,查看儿童性教育绘本数据死活找不到,没办法,就去当当网查询下数据,但是数据怎么弄下来呢,首先想到用Python,但是不会!!百 ...
- Java 爬虫学习
Java爬虫领域最强大的框架是JSoup:可直接解析具体的URL地址(即解析对应的HTML),提供了一套强大的API,包括可以通过DOM.CSS选择器,即类似jQuery方式来取出和操作数据.主要功能 ...
- 不会python?那就换一种姿势爬虫!Java爬虫技术总结
-本博客为原创内容,转载需注明本人- 前几天有个师妹将要毕业,需要准备毕业论文,但是论文调研需要数据资料,上知网一查,十几万条数据!指导老师让她手动copy收集,十几万的数据手动copy要浪费多少时间 ...
- webmagic的设计机制及原理-如何开发一个Java爬虫 转
此文章是webmagic 0.1.0版的设计手册,后续版本的入门及用户手册请看这里:https://github.com/code4craft/webmagic/blob/master/user-ma ...
- 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫
前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,本文记录免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作 ...
随机推荐
- Bootstrap3 代码-代码块
多行代码可以使用 <pre> 标签.为了正确的展示代码,注意将尖括号做转义处理. <p>Sample text here...</p> <pre>< ...
- How to kill a particular user terminal on Linux
Intro. Sometimes, the application we launched from command promp failed to exit. What we require is ...
- 剑指Offer——知识点储备--Linux基本命令+Makefile
剑指Offer--知识点储备–Linux基本命令 1.linux下查看进程占用cpu的情况(top): 格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 主要参 ...
- Android图表库MPAndroidChart(十二)——来点不一样的,正负堆叠条形图
Android图表库MPAndroidChart(十二)--来点不一样的,正负堆叠条形图 接上篇,今天要说的,和上篇的类似,只是方向是有相反的两面,我们先看下效果 实际上这样就导致了我们的代码是比较类 ...
- VS2010每次调试都出现“此项目已经过期”提示
问题描述 最近因为项目需要,开发平台从VS2005切换成了VS2010,把一些老项目也转换到VS2010平台,因为是从低到高升级,微软还是做了很多兼容,基本上可以无缝切换,编译调试也基本正常,但是 ...
- 程序员的自我修养-----Java开发的必须知道的几个注意点
1. 将一些需要变动的配置写在属性文件中 比如,没有把一些需要并发执行时使用的线程数设置成可在属性文件中配置.那么你的程序无论在DEV环境中,还是TEST环境中,都可以顺畅无阻地运行,但是一旦部署在P ...
- CSDN发表文章后老是待审核的原因
最近开始在csdn上写文章,发现老是文章被 待审核 ,于是便在网上搜集了下网友们的反馈,最后做出以下的整理. 1.CSDN检测到文章中的链接大于5,就会将文章列为"待审核",这个其 ...
- (一二九)获取文件的MineType、利用SSZipArchive进行压缩解压
MineType 简介 文件在网络上以二进制流的方式传播,为了区分不同的文件类型,用MineType来标明. 为什么要获取 文件的拓展名较短,比较好记,但是MineType是很长的,比如docx拓展名 ...
- iOS让软键盘消失的简单方法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 一些文本输入控件等待输入时会弹出软键盘,我们可以设置这些控件的 ...
- Hibernate单表操作
单一主键 assigned:由Java应用程序负责生成(即手工的赋值) native:由底层的数据库自动的生成标示符,如果是MySQL就是auto_increment,如果是Oracle就是seque ...