NutchHtmluitPlugi
重要说明:当前项目基于Nutch1.X系列已停止更新维护,转向Nutch2.x系列版本的新项目:https://www.oschia.et/p/utch-ajax项目简介基于ApacheNutch1.8和Htmluit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。
AccordigtotheimplemetatioofApacheNutch1.8,weca'tgetdyamicHTMLiformatiofromfetchpagesicludigAJAXrequestsasitwilligoreallAJAXrequests.
ThisplugiwilluseHtmluittofetchwholepagecotetwithecessarydyamicAJAXrequests.ItdevelopedadtestedwithApacheNutch1.8,youcatryitootherNutchversioorrefactorthesourcecodesasyourdesig.
主要特性常规的HTML页面抓取:对于常规的例如新闻类没有AJAX特性的页面可以直接用Nutch自带的protocol-http插件抓取。
常规的AJAX页面抓取:对于绝大部分诸如jQueryajax加载的页面,可以直接用protocol-htmluit插件抓取。
特殊的AJAX请求页面抓取:诸如淘宝/天猫的页面采用了独特的KissyJavascript组件,导致htmluit无法直接感知到需要等待Kissy发起的请求完成,通过等待页面加载解析内容判断处理实现此类页面数据抓取。
基于页面滚动的AJAX请求页面抓取:诸如淘宝/天猫的商品详情页面会基于页面滚动发起商品描述信息的加载,通过protocol-htmluit扩展处理可以实现此类页面数据抓取。
运行体验由于Nutch运行是基于Uix/Liux环境的,请自行准备Uix/Liux系统或Cygwi运行环境。
gitcloe整个工程代码后,进行本地git下载目录:
cdutch-htmluit/rutime/local
bi/crawlurlscrawlfalse1
//urls参数为爬虫入库url文件目录;crawl为爬虫输出目录;false本应为solr索引url参数,此处设置为false不做solr索引处理;1为爬虫执行回数
运行结束后可以看到天猫商品页面的价格/描述/滚动加载的图片等所有信息都已经完整获取到。
运行日志输入示例参考:https://git.oschia.et/xautlx/utch-htmluit/wikis/Log
扩展插件说明protocol-htmluit:基于Htmluit实现的AJAX页面Fetcher插件
parse-s2jh:基于XPath解析页面元素内容;基于数据库模式输出解析到结构化数据;对于个别复杂类型AJAX页面定制判断页面加载完成的回调判断逻辑
idex-s2jh:追加设置需要额外传递给solr索引的属性数据;设定不需要索引的页面规则;
欢迎关注作者其他项目:
S2JH-基于SSH的企业Web应用开发框架
12306Huter-(功能已失效不可用,不过还可以当作Swig开发样列参考只用)JavaSwigC/S版本12306订票助手,用处你懂的







评论