crawl4j使用介绍
crawler4j是Java的开源Web爬网程序。
一、配置介绍
crawler4j可以通过简单的配置即可完成一个爬虫、
crawler4j主要通过 CrawlConfig 进行配置 ,详细参数:
属性 | 是否必填 | 类型 | 默认值 | 建议值 | 含义 |
crawlStorageFolder | 是 | | null | 爬虫实例使用到的文件夹,文件夹里面会存储一些爬取到的数据、任务之类的 | |
| 否 | boolean | | 根据实际需求选择 | 如果该属性设置为ture,当重启爬虫时,爬虫会根据crawlStorageFolder文件夹存储的任务数据,继续上一次的爬网,当改属性为false时,重启爬虫,爬虫会清空crawlStorageFolder文件夹内容,重新写入 |
| 否 | | | crawler4j任务数据存储底层是用到sleepycat DB,该属性是配置请求sleepycat DB时锁定时长单位为毫秒 | |
| 否 | int | -1 | 最大爬虫深度、当小于0是没有限制 如 a页面中有子页面b,则a的深度为0,b的深度为1 | |
| 否 | int | -1 | 最大的调度页面数,小于0时无限制,当maxDepthOfCrawling<0时可以根据该属性暂停爬虫任务 | |
| 否 | String | | | |
| 否 | set | 默认请求头 | ||
| 否 | int | 200 | 发送请求时间间隔,如果网络给力、且需要提高性能,该值可适当降低 | |
| 否 | | | 是否爬取https相关请求 | |
| 否 | boolean | | 是否爬虫二进制数据如图片、视频。。。。,如果为true则爬取 | |
| 否 | boolean | false | 是否使用tika处理二进制数据,tika是crawl4j的解析工具,如果为ture是根据tika去解析url,否则直接用正则去匹配,不过最新的版本用的是领英的url-detector | |
| 否 | int | 100 | 每台主机的连接数,该值也是需要根据并发数计算的,为提高性能也可以适当的提高 | |
| 否 | int | 100 | 总网站http的连接数 | |
| 否 | | | httpclient 的requestCOnfig配置scoket超时时间,性能优化可以适当调低 | |
| 否 | int | | httpclient 的requestCOnfig配置链接超时时间,性能优化可以适当调低 | |
| 否 | int | | 处理一个页面最大的出站连接数 | |
| 否 | int | | 下载页面响应最大大小单位B | |
| 否 | boolean | true | 是否请求重定向的页面,如果为ture则访问 | |
| 否 | boolean | true | 是否应该在每次运行时自动更新TLD列表 | |
| 否 | boolean | ture | 任务完成后是否关闭系统资源,包括一些线程 | |
| 否 | int | 10 | 监控线程每多久执行一次,单位s,监控线程主要监控任务的状态,以便关闭资源 | |
| 否 | int | 10 | 线程关闭前等待多久,再次确认才进行关闭,单位s | |
| 否 | int | 10 | 线程关闭后,等待多久关闭资源(连接池、sleepycat DB)单位s | |
这次先整理到这吧,后期会把crawler4j相关的性能、以及源码注意部分、以及其它内容加上去。