- 时间:2019-01-23 16:27 编辑:2KB 来源:2KB.COM 阅读:525
- 扫一扫,手机访问
- 分享
-
扫描二维码,分享到微信
打开微信
使用"扫一扫"
再点击微信界面右上角三个点标志
分享到微信朋友和朋友圈。
摘要:
【作者简介】 赖伟威 毕业刚满一年的Java Coder,立志做可靠的系统架构师。大学期间与几位志同道合的同学创办CFuture工作室。现在深圳打拼中。
【软件简介】
Spiderman 是一
【作者简介】

赖伟威 毕业刚满一年的Java Coder,立志做可靠的系统架构师。大学期间与几位志同道合的同学创办CFuture工作室。现在深圳打拼中。
【软件简介】
Spiderman 是一个基于微内核+插件式架构的多线程网络蜘蛛,使用者通过简单的配置就能将复杂的目标网页信息抓取并解析为自己所需要的业务数据(即所谓的垂直细分领域数据)。
【访谈实录】
1. 你能否先介绍一下你自己,包括技术背景、工作经历、学习经历
- 基本资料
姓名:赖伟威 生日:1989 性别:男 OSC ID:自风
- 技术背景
软件工程师,Java Web前后端。
- 工作经历
2012-2013 深圳一创业小公司
- 学习经历
2008-2012 广东海洋大学软件学院
2. 是什么促使你开发了 Spiderman 这个爬虫程序?
- 业务需求
我所在公司的主产品是一个聚合其他各大团购网站信息的平台。在该平台上需要展示他们的团购详细信息(标题,特点,条款,图片轮转,详细图文内容,价格,已购买数量,过期时间,商家信息,地址等等),鉴于其他网站技术有限,不能提供专业的API供我司获取数据用,因此有必要使用网络爬虫去抓取这些团购信息。
- 为什么选择自主开发
上述业务需求需要对网络抓取过来的数据处理成我们所需要的业务数据,这点对数据的解析要求比较高,我们都知道网站上的结构会经常发生变化,这是维护的必要,因此就需要一个能够灵活应对这种变化的爬虫程序,最好是能够无需编写或修改Java代码就能完成维护,这样部署起来非常方便。此外,我们这种数据是非常垂直化的,跟谷歌、百度这种爬虫不同,我们对页面内容是有区别对待的,只有某种特定的页面数据才是我们要的数据。而且经常还要应付各种分页(列表分页、ajax分页、单篇信息分页等等)。
带着这样的需求,稍微的在网络搜索了几番,发现常见的爬虫程序都不能满足这几项要求,至少它们本身并不是特意被打造成垂直爬虫的。于是便有了自己开发的打算。这里要特别说一下,我们搜索的主要都是开源的爬虫,对于那些商业化的爬虫,确实有满足我们需求的存在,但是,我们还是希望有自主控制的权利。
3. Java 的爬虫有很多,那么 Spiderman 有什么优势和特点?
- 首先它的名字就非常霸气 : )
- 说正经的:Spiderman是一个专门打造为垂直领域数据抓取的网络爬虫程序。比如要抓取新闻、抓取团购信息、抓取商品信息、抓取博客、抓取图片、抓取论坛、抓取招聘信息等等这些。
- 特点列表:
1) 微内核,插件式,扩展性非常强,且符合filter的实现思路,开发者很容易就能将自己的业务处理“插”到爬虫的任意节点。比如你想把抓取回来的数据持久化到数据库,那编写一个实现Pojo扩展点的实现类,然后在配置文件安装一下即可。
2) 多线程,性能好不好就看Java多线程的那几个Pool了
3) 强大的解析能力,支持XPath、正则、表达式引擎(感谢FEL作者)
4) 设计:Spiderman为每个网站都独立分配了DB、Queue、线程池保证多网站抓取的时候各个网站的抓取都是并行的。
5) 独特的配置:使用Spiderman的核心是编写网站配置文件,该配置文件非常强大,详细可以翻阅这篇文章http://my.oschina.net/laiweiwei/blog/100866
6) 支持调度,不断的重新抓取数据,至于数据如何更新,这个跟具体的持久化方案有关,开发者完全可以自己控制。
7) 支持分页(列表分页、ajax分页、文章单篇分页)
...
- 优势:这个说不准哦,用了才知道。对于垂直数据抓取,在没有进行详细调查的情况下暂时没发现哪个爬虫能跟Spiderman一较高下。
4. 你是怎么推广 Spiderman 的?
- 见笑了,其实Spiderman连一个正式版本都还没发布,目前公布的都是开发版的。所以暂时还没开始推广,不过在开源中国上发布了几篇文章介绍了下它,没想到关注的人还挺多的,很多人私底下也经常跟我讨论,都对Spiderman表达了认同,并且都愿意为它口头上进行推广,再次要特别的感谢这些人,谢谢你们!
5. 目前 Spiderman 在实际项目中的使用情况如何?
- 我所在的公司一直在使用,其他公司我相信也有在使用的,至少跟我联系咨询的已经有好几个了。
6. 目前参与开发和维护 Spiderman 的人员有哪些?
- 哎,惭愧,暂时孤零零一个人,借这个机会看看能不能拉到第二个、第三个......有兴趣的童鞋可以联系我。
7. Spiderman 将来的发展方向是如何规划的?
- 垂直数据抓取、解析
- 更多的插件实现
- 有人提需求就为其实现
- 希望能靠近一下分布式......
8. 能否谈一下你对开源的理解,以及对国内开源技术和产品的看法?
对我个人而言,这是一份热爱,一份贡献,一份享受。自己在工作中经常使用开源软件,它带来很多收获,既然有所获,那就应该在力所能及的前提下有所奉献,哈,开源就是在不断的奉献。 国内近期开源氛围很火热,各种聚会。个人觉得国内的开源技术和产品一点都不必国外的差,这里要特别赞扬一下ZTree的作者,在下有幸在先使用了国外的一个Tree组件,发现性能非常糟糕,后来接触到ZTree,替换了之后,性能飙升,这个让在下印象非常深刻,感谢作者提供了这个那么优秀的产品。相信未来国内的开源技术和产品一定会发展的更好的!
9. 你有什么建议给程序员初学者吗?
- 踏实学习基础理论
- 踏实、坚持不懈地去实践,去开发项目
- 实践后再总结
- 尝试去造轮子,造更多的轮子,哇啊啊啊啊啊......(需要造点气势)
10. 能否给开源中国提一些意见和建议?
把社区内容质量再提高,特别是讨论区这一块(个人见解),想想当初JavaEye的价值。

2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务