论文部分内容阅读
新闻门户网站为了获取最新的新闻,需要对数以万计的网站比如地方新闻网、个人博客、行业论坛进行定时访问。普通用户比如招投标人员、数据分析师,平时需要定期访问各个政府招标网站、行业咨询网来筛选最新信息。为了提供这类通用性工具,帮助需求人群快速完成特定网页的采集和监控,本文设计与实现一套可定制化规则的新闻抓取系统。本文主要工作包含①底层使用WebMagic作为基础抓取框架,借助Zookeeper完成分布式爬虫架构,通过Redis实现各节点之间的指令控制和任务分发,做到节点灵活部署与感知②对现有的css定位生成算法进行改进,提出并实现“多元素合并算法”,以此为基础开发可视化辅助定位功能③针对用户对不同网站的采集流程差异,采用预制流程模板来覆盖大部分定时任务,并基于有向图抽象出自定义抓取流程,允许用户自定义制定采集流程④对传统的新闻页面,采用基于文本密度算法来实现标题,正文的自动抽取⑤采用SimHash算法和Redis完成整库的新闻内容去重和单次任务的URL去重⑥Web层以SpringBoot为后端开发框架,Vue为前端开发框架,操作界面含有采集任务的查看、新建、删除、复制;执行节点的感知、暂停、集群转换;新闻内容的搜索、下载、订阅。经过开发测试,本系统在操作功能和采集性能上均达到预期。在实际开源的线上使用过程中,已经累计采集千万级别的数据结果,并监控着上千个网站的实时更新。