best_practice - monstercodings/websiphon GitHub Wiki
最佳实践
关于请求器
-
默认说明
在没有显示指定请求器的情况下,框架会默认使用BasicWebRequester
请求器
显示指定请求器方法如下:CrawlerBuilder.addLast(new BasicWebRequester())
-
如何选择
- 当你需要爬取的站点多数是静态页面或api接口时,使用
BasicWebRequester
或ApacheWebRequester
- 当你需要爬取的站点是动态加载数据或需要JavaScript渲染时,使用
Cdp4jWebRequester
- 当你需要爬取的站点多数是静态页面或api接口时,使用
-
各请求器的特点是什么
BasicWebRequester
优点:以NIO同步非阻塞的方式发起HTTP请求,可设置代理,可配合队列监视器实现爬取任务完成通知
缺点:对于少量站点的SSL证书解析会出现异常,针对这种情况可更换请求器为ApacheWebRequester
ApacheWebRequester
优点:同样是NIO形式发起HTTP请求,基本兼容所有站点SSL证书
缺点:无法设置代理,与队列监视器配合不完美,偶尔会出现超时通知的情况Cdp4jWebRequester
优点:对于任何页面均可任意爬取,无需自行维护请求头
缺点:由于是浏览器级别动态渲染,所以效率非常低下,如果可以寻找到对应站点的API则建议使用上两个请求器
-
关于开发自定义请求器
(未完待续)
关于数据来源管道
-
默认说明 该项为可选项,非必须添加 显示指定读写管道方法如下:
CrawlerBuilder.addLast(new FilePipeline("list.txt", "utf-8"))
-
关于开发自定义请求器
(未完待续)
关于处理器
(未完待续)