【技术实现步骤摘要】
面向广告投放的主从分布内容爬取机器人
[0001]本专利技术涉及一种主从分布内容爬取机器人,特别涉及一种面向广告投放的主从分布内容爬取机器人,属于内容爬取机器人
技术介绍
[0002]随着网络技术的跨越式发展,特别是移动互联网的到来极大丰富了网络数据与信息量,互联网的营销意义与广告价值日益显著。与通过传统媒体的投放方式相比,互联网广告具有独特的优势,首先其展示素材丰富,可以将声音图片文字等多维元素有机融合在一起,并且其价格远低于同等效果的传统媒体广告。其次,网络广告天生具有强交互性,在拉近广告主与用户间距离的同时还可以方便的统计出广告投放效果,另外广告内容针对性强,传播范围广且不受时空限制,具有独特的优势。
[0003]互联网广告的演化大致经历了三个阶段,目前以用户行为为主导的广告投放变得越来越重要,投放系统已经能够收集用户行为信息,通过特征分析等手段向用户推荐其最感兴趣的广告。但无论广告投放模式如何发展,都离不开一个高效的网络内容爬取系统对海量数据的收集索引更新等这些基础性工作,网络内容爬取作为搜索引擎的 ...
【技术保护点】
【技术特征摘要】
1.面向广告投放的主从分布内容爬取机器人,其特征在于,设计实现基于Redis的分布式内容爬取机器人,通过分布式网络部署方式进行抓取与存储;分布式内容爬取机器人总体架构包括一个中枢调度器、多个爬取器结点、Web配置管理模块、代理池模块、分布式存储模块、Redis数据库与MongoDB数据库,具体为:第一,基于广告投放的实际需求,提出一个主从分布内容爬取机器人来索引网页信息并进行周期性更新,构建训练集与测试集,实现广告投放页面的快速响应;第二,内容爬取机器人由一个中枢调度器和众多抓取爬虫组成,并基于Web方式实现抓取规则配置与运行状态实时监测,中枢调度器与爬虫结点间采用Redis内存数据库实现双向通信,其中中枢调度器采用多级URL队列实现URL规则匹配与去重操作,同时周期性监测抓取规则变化进行规则重调度,并根据配置调节各个规则队列调度速率并通过一致性哈希算法在多个抓取爬虫间进行任务均衡;另外,每个抓取爬虫采用多线程池设计来并发请求URL,先提取页面链接,再采用开源Goose模块提取元数据与正文内容后,采用分片与复制集机制对内容进行分布式存储,同时使用代理IP来防止网站屏蔽内容爬取机器人。2.根据权利要求1所述的面向广告投放的主从分布内容爬取机器人,其特征在于,主从分布内容爬取机器人基本运行流程为:首先启动MongoDB分布式数据库与Redis数据库,确认两者正常运行,然后启动Web配置管理模块Flask监听本地5000端口,将针对特定站点指定的抓取规则依次配置存储到Redis数据库,再启动中枢调度器,调度器首先加载系统配置文件到全局,加载规则更新线程,该线程从Redis中读取事先制定的抓取规则到全局字典并更新规则版本信息,该线程创建调度线程并启动它,周期性动态监测规则版本号,发现规则变动就激活调度标志通知调度线程立即开始一次新的调度,调度线程在一次调度进程中进行两个进程:规则初始调度与规则队列均衡调度,其中规则初始调度根据是否达到更新周期,由规则种子列表驱动一次更新性调度,规则队列调度根据各个队列在配置中的优先级与权重确定其调度速率后,去重并更新其调度状态,由一致性哈希进程投入当前存活爬取器的调度队列;代理池启动后负责周期性获取互联网实时代理IP信息有效性检测后投入Redis;爬取器启动后,加载多个线程单元从对应的调度队列中加载URL交给下载组件,下载后提取URL回馈给调度器,页面放入数据队列等待存储模块的处理,最后启动存储模块将页面预处理后提取有效信息,存入分布式数据库MongoDB中,同时通过FlaskWeb后台监测系统运行状态;各个组件间相互独立,都可以部署在不同的机器结点上,实现资源有效利用。3.根据权利要求1所述的面向广告投放的主从分布内容爬取机器人,其特征在于,中枢调度器的设计:中枢调度类由规则更新线程类与规则调度线程类组成,三者共同依托环境类来工作,环境类提供全局运行字典变量,存储实时的抓取规则和一些全局共享的变量信息,还提供Redis数据库连接池变量,该工作类定义两个静态方法:第一方法:链接检测方法进行链接状态调度逻辑,同时执行实际调度操作,对未出现过的链接创建新的URL对象类,判断已有URL对象的当前状态,如果是爬行失败状态则根据调度记录表统计参与调度与调度失败的次数,如果次数超过设定值则放弃该URL的抓取,否则在调度时间间隔满足时,给予又一次参与调度的机会,在当前状态不为失败时,如果其当前状态是爬行中或者已调度,则放弃这次调度,如果当前状态为爬行成功且URL的类型为分支,基于分支结点内容变化较快,立即对它进行调度,剩余的所有情况则在满足时间间隔的条件下进行调度;
第二方法:基于哈希的去重功能,同时更新URL对象信息。4.根据权利要求3所述的面向广告投放的主从分布内容爬取机器人,其特征在于,URL对象中数据项包括创建时间,所属规则名称、类型,最后一次被调度的时间戳以及调度记录表,调度状态既是URL创建后的初始状态又是一次新的调度开始时的状态,URL变为调度状态标志它已进入某个爬取器的调度队列同时URL对象的调度时间戳被更新,当它被爬取器取出开始下载时状态被更改为爬行状态,如果爬行成功后其状态被更改为爬行成功,否则更新其状态为爬行失败,同时记录该URL到爬行失败集合进行后续处理;使用一致性哈希设计私有接口HashRing,既保证任务分配的平衡性与分散性,又保证系统在极端情况下的单调性,规则调度线程继承该接口对其实现,规则调度线程每次调度前通过Redis数据库获取系统中当前存活的爬取器结点加入存活列表,然后与上一次存活列表作比较,通过比对生成两个向量:增向量包含当前增加的结点,减向量包含当前已死亡的结点,通过接口操作更新哈希环状态,之后根据域名把每个规则加入相应的爬取器结点列表,最后通过遍历爬取器结点列表,将其中每个规则队列中的URL按照指定的调度速率投入爬取器队列;规则调度速率设计通过全局权重、调度队列规模限制、爬取器中规则数量与各个规则指定的权重与优先级参数共同决定,其中规则权重和优先级都与调度速率成正比,优先级数值范围1到10,数值越小优先级越高;在正式调度时,属于同一爬取器中的规则通过求和的方式计算出总调度速率,再根据调度队列规模限制与调度队列的当前数量作差计算出可供调度的空间大小,各个规则通过百分比的方式决定自己能够使用多少可用空间,如果当前规则队列中URL数量多于该次调度中可使用的空间大小,调度可用空间数量的URL,如果当前规则队列中URL数量小于可使用的空间,剩余空间累积到下一个规则,直到所有规则调度完毕。5.根据权利要求4所述的面向广告投放的主从分布内容爬取机器人,其特征在于,考虑到规则更新线程间接影响规则调度线程的调度频率,提出一种片段化循环检测法确保休眠中的规则调度线程依然能及时响应规则的热更新:首先两线程间共享事件标志,正常情况下规则调度线程每次调度后进入正常休眠,规则更新线程每次检查规则版本号后也将进入休眠,但规则调度线程的休眠片段化设计,休眠时间分割成小时间片,每次短暂休眠后都确认事件标志状态有无改变来决定是否进入下一次休眠,规则更新线程发现规则版本变动后,在休眠前设置事件标志来通知规则调度线程立即进行下一次调度。6.根据权利要求1所述的面向广告投放的主从分布内容爬取机器人,其特征在于,爬取器与存储模块的设计:爬取器包括下载器组件、URL提取回馈组件、DNS解析组件,三者是完全的顺序执行关系,被封装成一个线程单元,另外DNS解析组件在各个线程间公用,设计成可重入的共享函数,爬取器借助多个线程单元协同组成的线程池完成并发抓取解析工作,每次获取抓取任务后首先经过DNS解析执行段获取本地域名解析缓存,若获取到则直接进入下载器组件,否则进行DNS解析请求等待响应结果,下载执行段进行请求把结果交给URL提取反馈执行流,提取得到的URL反馈到调度器同时把请求结果转发给存储模...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。