1299550
好吧,代码量还是由项目决定,只要十行有些夸张了。不过用来做小规模定向抓取的话,比如简单地爬爬图片、抓抓数据,确实是十几行代码。
简单,开箱即用
- 简单粗暴的 download 方法,想下就下
- 某个 url 意外抓取失败?retry 方法直接重试
- 无视乱码问题,自动编码正文为 utf8(选项)
- 熟悉的 jQ 选择器,提取正文数据的必备神器
- 用 pipe 储存抓取的数据,谁用谁舒畅
灵活,稳健扩展
当我们要开发一个灵活、稳健的爬虫,我们需要……
- 如果希望爬虫更稳定,需要写一套出错后的重试机制吧?
- 如果定向爬取的网页结构复杂,一个爬虫实例需要处理好几个网页结构,是不是需要再加一套完善的爬取计划管理?
- 如果需要对抓取的数据进行大量的储存操作,是不是需要操作并管理好文件流,最好封装为 pipeline?
- 如果需要防止访问重复链接,是不是需要再搭一个url池?
- 如果要做分布式,是不是要把队列搬到redis,并管理起来?
- 如果……
这些就是 nodespider 设计的初衷——提供简单、开箱即用的api方法,完成基础设计并提供扩展的接口,减少开发过程的重复工作。希望nodespider 能成为一个nodejs的爬虫开发框架,更希望对大家有些帮助
未来还可能支持
- phantomJs-plan 和 chromeless-plan,模拟 js 环境……
- redis-queue,可以完成简易版的分布式抓取
- mysql-pipe,直接保存抓取的数据到数据库
- ……
更多请看: nodespider 文档 喜欢的话,不要吝啬你的star嘿嘿 github