面向垂直搜索的聚焦爬虫研究及应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 基于用户访问行为的分析算法
有代表性的是基于领域概念的分析算法,涉及本体论。
发展趋势
• 网页库级层次垂直搜索 • 智能化的数据分析和挖掘方向 • 自动化地结构化数据信息抽取技术
应用技术研究
网络爬虫Heritrix
Heritrix
ToeThread BdbFrontier
CrawlController
“智联招聘”定制Heritrix抓取组件
招聘信息记录iBatis组件
MySQL数据库
Spring容器
算法流程图
开 始 初始化 加入种子URL 提取“职位类别”和 “行业类别”信息 组合并加入待抓取 URL到队列 单独记录“职位 类别”和“行业 类别”
Y
记录写入数据库
结 束
Yห้องสมุดไป่ตู้
待抓URL队列 为空
加入下一页URL到队列
HTML内容
Web-Harvest设计分析
• • • • • 外部执行入口Scraper 脚本运行的上下文环境ScraperContext 执行脚本 脚本引擎 GUI组件
Web-Harvest扩展
• 继承或添加SystemUtilities这个脚本 执行工具类的处理方法 • 在ScraperContext里加入新对象,并 在脚本中用指定命名来调用
面向垂直搜索的聚焦爬虫 研究及应用
吕昊
OUTLINE
• 背景 • 研究综述 • 应用技术研究 • 招聘搜索聚焦爬虫设计与实现
背景
搜索引擎
Step i Step i Step i
Async
Domain Spec/Rule
Async
Async
HARVEST
Async
Queue/store Process Text
关键技术分析
• 抓取目标的定义与描述 • 网页URL的搜索策略 • 网页的分析与信息的提取
抓取目标的定义与描述
• 针对有目标网页特征的网页级信息
对应网页库级垂直搜索,抓取目标网页,后续 还要从中抽取出需要的结构化信息。稳定性和 数量上占优,但成本高、性活性差。
• 针对目标网页上的结构化数据
对应模板级垂直搜索,直接解析页面,提取并 加工出结构化数据信息。快速实施、成本低、 灵活性强,但后期维护成本高。
URL的搜索策略
• 深度与广度综合的搜索策略
逐步向下延伸,同时往广度方向遍历。虽然这 种搜索方法综合平衡,但是容易造成重复搜索 ,降低效率且加重网络负担。
• 最佳优先搜索策略
预测候选链接与目标网页的相似度或主题相关 性,对预测认为“有用”的链接进行搜索。优 点在分析策略有效的前提下,搜索效率非常高 ;缺点是难以避免会遗漏一些链接。
核心技术
• • • • • Heritrix:(版本1.12.1) WebHarvest:(版本1.0) Spring Framework:(版本2.0.7) iBatis:(版本2.3.0.677) Jakarta Commons
系统结构图
Heritrix
Web-Harvest页面解析 “智联招聘” 页面解析脚本
通用全文搜索的不足
• 质量与性能之间难以兼顾,倾向于 网络覆盖与响应速度 • 搜索意图不明,基于关键字检索, 结果含有大量干扰信息 • 缺乏行业化的特征分析,无法实现 提供个性化服务
垂直搜索
• 服务于局部专业领域的精确搜索 • 用户难以描述他要找什么,除非让 他看到想找的东西 • 注重专业化与结构分析 • 数据倾向于结构化和格式化
垂直搜索的本质
• 从主题相关的领域内,获取、加工 与搜索行为相匹配的结构化数据和 元数据信息。
如数码产品mp3:内存、尺寸、大小、电池型 号、价格、生产厂家等,还可以提供比价服务
网络爬虫
• 因沿超链接 “爬行”的工作方式, 被称为爬虫或蜘蛛 • 基于超链接与图的遍历算法,自动 从网络下载Web信息的程序 • 通常用来为搜索引擎提供数据源
• • • • 网站改版,维护成本高 不适合大范围站点抓取 服务器端运行,容易被封IP 增量抓取,无特别有效的处理办法 ,大多依赖站点的排序规则来优化
解决方向
• 网页库级 • 智能化信息获取 • 分布式
致谢!
招聘搜索聚焦爬虫设计与实现
目标
• 以智联招聘网(www.zhaopin.com/) 为样例抓取站点 • 抓取招聘职位信息
元数据分析:职位名称 、职位类型 、行业类 型 、工作地点 、单位或公司及其网址、发布 时间 、来源站点、原始链接 、描述信息
功能需求
• 从指定的种子URL地址开始,每次 动态分析出含职位信息且不重复的 待抓取URL,而不希望数据库中需 要有额外表去存储这些非商业相关 的URL信息
URL的搜索策略
• IP地址或域名搜索策略
搜索全面,不受多站点交错引用URL的干扰,但不适合 多域名、分布式的大规模搜索。
• 广度优先搜索策略
类似先进先出的队列方式,逐层深入搜索。适合级数少 的目标站点,但对于信息量大、层次结构深的目标站点 ,难以深入执行 。
• 深度优先搜索策略
类似先进后出的队列方式。比较适合搜索深层次页面嵌 套的目标站点,还能发现最大数目的交叉引用,但是容 易导致爬虫的陷入 。
网页的分析及信息的提取
• 基于网络拓扑关系的分析算法
根据页面间超链接引用关系,来对与已知网页有直接或 间接关系对象作出评价的算法。网页粒度PageRank , 网站粒度 SiteRank。
• 基于网页内容的分析算法
从最初的文本检索方法,向涉及网页数据抽取、机器学 习、数据挖掘、自然语言等多领域综合的方向发展。
网页解析Web-Harvest
• 自身脚本解释与执行引擎、内嵌 BeanShell、JavaScript和Groovy等引擎 • 支持XPath、XQuery和正则表达式等多 种文本处理技术 • 可视的控制调试程序
Web-Harvest执行脚本
起始URL XML文档 Xquery Http File Loop Ver-def Http-to-Xml XML内容 保存在context XML内容 Xpath
Index Builder
Spider_task
Index dist Spider Task
spider
spider
spider search search search
Internet
搜索引擎分类
• 通用全文搜索
特点:关键字查询,海量数据 例:Google、Baidu、Yahoo
• 垂直搜索
特点:“专、精、深”,行业化 例:Healthline、Kooxoo、Koubei
Heritrix组件分析
• • • • • • • 中央控制器CrawlController 抓取范围策略组件CrawlScope 链接制造器Frontier 多线程处理 ToePool 、ToeThread 处理器Processor和处理器链 抓取任务CrawOrder Web控制台程序
Heritrix扩展定制
• 定制自己的Exractor处理器 • 扩展PostProcessor中的FrontierScheduler • 定制链接制造器BdbFrontier的URL散列 算法
继承QueueAssignmentPolicy, 选择ELFHash
• CrawlScope和robots.txt对个别Processor 的影响
面向垂直搜索的聚焦爬虫
• 将定向或非定向的网页抓取下来并 进行分析后得到格式化数据的技术 • 服务于垂直搜索,目标获取与主题 相关的结构化数据和元数据信息
研究综述
工作原理与流程
• 以一定的网页分析算法,提取与主题相关 的超链接,加入待抓取队列 • 根据一定的搜索策略,从待抓取链接队列 中选择下一步抓取链接,并重复上述过程 ,直到满足某一条件停止 • 从被抓取网页中提取结构化数据和元数据 信息 基础核心工作环节:网页抓取和信息提取。
功能需求
• 从待抓URL中提取出完整的职位信 息,包括职位详细信息页的原始链 接URL等,部分数据还需要深加工 处理(如详细页的关键信息描述文 本的提取)
功能需求
• 考虑到今后实际在多个招聘站点抓 取时,可能需要建立一套统一的类 目信息映射关系,系统要求单独记 录“职位类别”和“行业类别”这 两个特殊元数据信息到数据库
功能需求
• 支持有条件地保存抓取来的职位信 息,譬如只保存晚于某指定日期发 布的职位信息 • 含控制台程序,可控制、监视系统 运行,运行结束反馈总结报告信息
性能需求
• • • • • 可配置性 可修改性 并发性 组件化可扩展 通用性
开发环境
• 开发语言:Java • 开发工具:Eclipse • 数据库:MySQL
● BdbMultipleWorkQueues ● BdbWorkQueue ● BdbUriUniqFilter
● ● ● ● ●
CrawOrder CrawlScope Frontier ToePool ProcessorChainList PreProcessor Fetcher Extractor Writer PostProcessor
N
记录写入数据库
Y
待抓URL访问过
有分页
N
抓取招聘列表信息
数据流图
指定种子 URL
单独记录“职位类型” 和“行业类型”
分析“职位类型”和“行业类型” 的搜索URL
记录职位信息 组合搜索URL
下一页翻页URL
提取当前页职位信息
职位列表信息页
加入待抓URL
有无待抓URL
代码实现
• 点击播放演示
存在的问题