最近一年有很大一部分时间都用在了构建一套爬虫系统上。去年新加入的公司一直在做一个加密货币领域的知识图谱项目,旨在构建一套加密领域中有关人、公司、项目的知识图谱,涉及到150+种不同来源的结构或非结构化数据的采集和存储、NLP、实体识别、关系抽取、图谱构建以及各种基于图谱的分析得出的报告。通过图谱可以迅速的获取如人事变动、项目信息、项目进展等直观信息,也可以基于人与人、人与项目的关系作出一些分析报告供投资人参考。
我负责是数据采集部分,落地其实就是一套爬虫系统框架,经过1年的不断改进(折磨),也算折腾出了一套自我感觉可以称得上稳定、可扩展、高效的爬虫系统。里里外外涉及到的项目包含爬虫核心(主要爬虫任务执行单元)、代理池、Cookies池、渲染服务器、定时任务调度(定时调度用于维护或收集信息的脚本)、实时内容解析(提供一些RESTful的API用于封装处理一些特殊环境下的需求);另外,还有一些图谱项目特有的需求,比如说针对新闻网站主体的内容解析、针对Twitter的KOL定点爬取和关注关系监控等。
目前项目也算稳定,我想了下决定开源一版轻量级的版本,在当前公司用的版本上动刀子,只留下了必要的模块并改成了单机单进程的版本,事实上我就是从这个版本出发,慢慢一步一步走过来的。如果大家有兴趣,可以留言,我会一点点更加深入的讲讲。
项目在GitHub上的地址是:SkyHook。
除此之外,我想开始写一写系列的文章,暂时还没考虑好要在哪里发布,应该是知乎专栏或者微信公众号,另外会有个online版本:Crawler Book。主要是想和大家聊聊这几年专职爬虫的一些感悟和一些常常需要面对的问题,同样如果有问题的话,可以提,我随时会修改目录。
最近应该会恢复更新下博客,又要水文章了。
网友评论