nutch-htmlunit 基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬开源项目

我要开发同款
匿名用户2013年09月23日
247阅读

技术信息

开源地址
https://github.com/propublica/upton
授权协议
Apache

作品详情

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订票助手,用处你懂的

功能介绍

Nutch Htmlunit Plugin 重要说明: 当前项目基于Nutch 1.X系列已停止更新维护,转向Nutch 2.x系列版本的新项目:http://www.oschina.net/p...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论