多线程爬虫Miner
需要配置项:
1、URL包含关键字。
2、存储方式:DB-数据库存储;FILE-文件存储。
3、爬取页面最大深度。
4、下载页面线程数。
5、分析页面线程数。
6、存储线程数。
-------------------------------------------
程序中用到的表:
CREATE TABLE `miner` ( `id` varchar(32) NOT NULL, `batchNo` varchar(8) DEFAULT NULL, `filePath` varchar(255) DEFAULT NULL, `fileName` varchar(255) DEFAULT NULL, `getDate` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-------------------------------------------
程序中用到的maven依赖
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.8.3</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.15</version> <scope>provided</scope> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency>
测试类:
package com.iteye.injavawetrust.miner; import java.util.ArrayList; import java.util.List; /** * 测试类 * @author InJavaWeTrust * */ public class MinerTest { public static void main(String[] args) { MinerConfig config = new MinerConfig(); // 1、URL包含关键字。 List<String> keys = new ArrayList<String>(); keys.add("163"); config.setKeys(keys); // 2、存储方式:DB-数据库存储;FILE-文件存储。 config.setStoreType(StoreType.DB); // 3、爬取页面最大深度。 config.setMaxDepth(2); // 4、下载页面线程数。 config.setMinerHtmlThreadNum(5); // 5、分析页面线程数。 config.setMiseringThreadNum(3); // 6、存储线程数。 config.setMinserStoreThreadNum(3); // 7、设置爬取起始页面URL。 MinerUrl minerUrl = new MinerUrl(); minerUrl.setUrl("http://www.163.com"); minerUrl.setDepth(1); Miner miner = new Miner(minerUrl, config); miner.start(); } }
爬虫 MINER 程序列表:
Html.java 存储页面信息类
Miner.java 爬虫启动类
MinerBean.java 数据库表 miner bean
MinerConfig.java 爬取配置类
MinerConstanits.java 常量类
MinerDB.java 数据库工具类
MinerHtmlThread.java 爬取页面线程
MinerMonitorThread.java 监控线程
MinerQueue.java 访问队列
MinerStoreThread.java 存储线程
MinerThreadPool.java 线程池
MinerUrl.java 解析页面后存储URL类
MinerUtil.java 爬虫工具类
MiseringThread.java 解析页面线程
StoreType.java 存储方式
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步