当前位置:  软件>java软件

基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件 nutch-htmlunit

    来源:    发布时间:2015-01-31

    本文导语:  Nutch Htmlunit Plugin 项目简介 基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic HTML information from fetch pages including AJAX requests as it ...

Nutch Htmlunit Plugin 项目简介

基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。

According to the implementation of Apache Nutch 1.8, we can't get dynamic HTML information from fetch pages including AJAX requests as it will ignore all AJAX requests.

This plugin will use Htmlunit to fetch whole page content with necessary dynamic AJAX requests. It developed and tested with Apache Nutch 1.8, you can try it on other Nutch version or refactor the source codes as your design.

主要特性
  • 常规的HTML页面抓取: 对于常规的例如新闻类没有AJAX特性的页面可以直接用Nutch自带的protocol-http插件抓取。

  • 常规的AJAX页面抓取: 对于绝大部分诸如jQuery ajax加载的页面,可以直接用protocol-htmlunit插件抓取。

  • 特殊的AJAX请求页面抓取: 诸如淘宝/天猫的页面采用了独特的Kissy Javascript组件, 导致htmlunit无法直接感知到需要等待Kissy发起的请求完成,通过等待页面加载解析内容判断处理实现此类页面数据抓取。

  • 基于页面滚动的AJAX请求页面抓取: 诸如淘宝/天猫的商品详情页面会基于页面滚动发起商品描述信息的加载, 通过protocol-htmlunit扩展处理可以实现此类页面数据抓取。

运行体验

由于Nutch运行是基于Unix/Linux环境的,请自行准备Unix/Linux系统或Cygwin运行环境。

git clone整个工程代码后,进行本地git下载目录:

cd nutch-htmlunit/runtime/local

bin/crawl urls crawl false 1

//urls参数为爬虫入库url文件目录; crawl为爬虫输出目录; false本应为solr索引url参数,此处设置为false不做solr索引处理; 1为爬虫执行回数

运行结束后可以看到天猫商品页面的价格/描述/滚动加载的图片等所有信息都已经完整获取到。

运行日志输入示例参考:http://git.oschina.net/xautlx/nutch-htmlunit/wikis/Log

扩展插件说明
  • protocol-htmlunit: 基于Htmlunit实现的AJAX页面Fetcher插件

  • parse-s2jh: 基于XPath解析页面元素内容; 基于数据库模式输出解析到结构化数据; 对于个别复杂类型AJAX页面定制判断页面加载完成的回调判断逻辑

  • index-s2jh: 追加设置需要额外传递给solr索引的属性数据; 设定不需要索引的页面规则;

欢迎关注作者其他项目:

  • S2JH - 基于SSH的企业Web应用开发框架

  • 12306 Hunter - (功能已失效不可用,不过还可以当作Swing开发样列参考只用)Java Swing C/S版本12306订票助手,用处你懂的


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Apache如何启用gzip压缩
  • 想用APACHE做WEBSERVER,但不会用APACHE,请教。
  • Apache Hadoop 项目主页及介绍
  • apache日志文件总是空的,重起apache也没用。
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 安装完apache测试主页发现用的是系统自带的apache,该怎么办?
  • Apache hadoop当前各个版本说明
  • SUN OS5.8怎么没有make ,我想装APACHE2.0不知道怎么下手,原来的APACHE1.3有不知道怎么卸载
  • Windows下php 5.3.5和apache2安装配置及测试
  • 假设现在需要从网上下载的压缩包apache2,如何以dso模式安装在/home 目录的apache目录中,写出完整命令
  • Apache HTTP服务器2.4中的新功能概览
  • Apache 2.0 好像不支持Tomcat,我没看到哪位用 Apache 2.0 连接上 Tomcat 的
  • Apache HTTP Server(httpd)下载安装以及如何配置java(tomcat)和php详细介绍
  • linux下重装apache,却无法安装apache模块?
  • Apache默认是不支持SSI如何给Apache增加SSI支持
  • 我装了一个redhat9.0, 我如何卸载掉它原来的apache,然后重新装一个apache?
  • 请问TOMCAT和APACHE怎样结合使用呢?就像PHP和APACHE结合使用一样?
  • 真痛苦:resin装好了,Apache装好了(开始用pws改成Apache还是不行),但就是不执行我的jsp,在Win98下面
  • 我连接apache和tomcat之后为什么apache不能启动?
  • 100分!tomcat4.0.4+Apache可以不用从新编译apache就可以集成tomcat吗?因为我看到:.....
  • 急!Ubuntu10.04 apache2和tomcat6 mod_jk 整合 实现apache2的代理问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3